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);
    

      

  • 相关阅读:
    selenium 学习(-)
    阿里百川SDK初始化失败 错误码是203
    sql-如何提高SQL查询的效率?
    索引失效原因总结
    索引失效原因总结
    sql-优化-大表关联小表
    sql-优化-大表关联小表
    C#-How to get series point info when mouse is over chartcontrol
    C#-How to get series point info when mouse is over chartcontrol
    C#-ILookup 初始化
  • 原文地址:https://www.cnblogs.com/achengmu/p/10100744.html
Copyright © 2011-2022 走看看