fastjson 1.2.58循环引用,属性类型为map,反序列化,循环引用表达式未被解析

j2cgzkjk  于 2021-11-27  发布在  Java
关注(0)|答案(0)|浏览(281)
static class Foo{
        private Map<String,String> mapData;

        public Map<String, String> getMapData() {
            return mapData;
        }

        public void setMapData(Map<String, String> mapData) {
            this.mapData = mapData;
        }
    }

    public static void main(String[] args) {
        List<Foo> fooList = new ArrayList<>();

        HashMap<String, String> mapData = new HashMap<>();
        mapData.put("key1", "val1");

        Foo foo = new Foo();
        foo.setMapData(mapData);

        Foo foo2 = new Foo();
        foo2.setMapData(mapData);

        fooList.add(foo);
        fooList.add(foo2);

        String fooListJson = JSON.toJSONString(fooList);
        System.out.println(fooListJson);

        List<Foo> fooListJsonParseRet = JSON.parseArray(fooListJson, Foo.class);
        for (Foo fooItem : fooListJsonParseRet) {
            System.out.println(JSON.toJSON(fooItem));
        }
    }

序列化结果:[{"mapData":{"key1":"val1"}},{"mapData":{"$ref":"$[0].mapData"}}]

反序列化结果:
{"mapData":{"key1":"val1"}}
{"mapData":{"$ref":"$[0].mapData"}}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题