zoukankan      html  css  js  c++  java
  • Fastjson-fastjson中$ref对象重复引用问题

    当你有城市数据,你需要按国内、国际、热门城市分成数组的形式给出并输出为json格式。

    第一个问题,你的数据格式,需要按字母类别划分,比如:

    "int": {
                "C": [
                    {
                        "acityId": "1001",
                        "acityIndex": "C",                  
                        "cityCname": "成都",
                        "cityEname": "Chengdu",
                        "isAbroad": 0,
                        "isHot": 1
                    }
                ],
                "L": [
                    {
                        "acityId": "1002",
                        "acityIndex": "L",
                        "airportCname": "拉萨",                 
                        "cityCname": "拉萨",
                        "cityEname": "Lasa",
                        "isAbroad": 0,
                        "isHot": 1
                    }
                ]
            },
    

      

    然后我们可以通过,Map<字母string, List<城市信息object>>这样来保存数据

    //保存首字母对应的list
    Map<String,List<Object>> patientDetectionMap = new HashMap<String,List<Object>>();
    //保存所有的首字母
    

      

    当你for循环的时候,发现这个城市,既满足国内城市,也满足热门城市,那么就会造成某条内容一样的城市信息fastJson数据的时候,出现:

    $ref对象重复引用问题

    那么怎么解决呢:

    在你要JSON.toJsonString的时候加入

    SerializerFeature.DisableCircularReferenceDetect这个序列化选项,用来关闭引用检测
    

      

    /**
     * fastjson中$ref对象重复引用问题
     * 
     * 介绍:
     * FastJson提供了SerializerFeature.DisableCircularReferenceDetect这个序列化选项,用来关闭引用检测。
     * 关闭引用检测后,重复引用对象时就不会被$ref代替,但是在循环引用时也会导致StackOverflowError异常。
     * 
     * 用法:
     * JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect);
     */
    

      

    return JSON.toJSONString(list(你的数据), SerializerFeature.DisableCircularReferenceDetect);
    

      

  • 相关阅读:
    轻松理解https,So easy!
    都 9102 年了,一起来攻克 Linux 吧!
    8种常见SQL错误用法,你中招了吗?
    如何写出让同事无法维护的代码?
    Spring Boot 2.1.6 发布了!
    推荐一款 MyBatis 开发神器,为简化而生!
    vs2015制作一个超级简单的MVC项目
    解析ASP.NET WebForm和Mvc开发的区别
    asp.net 的 web form 过时了吗
    Asp.net的WebForm的落后技术
  • 原文地址:https://www.cnblogs.com/achengmu/p/10100744.html
Copyright © 2011-2022 走看看