我从w3c school了解到fastjson有引用检查机制,对于引用对象可以进行引用的方法序列化,并进行"$ref"文本存储;
但我这边对于文本的设计本身就存在"$ref"关键词,对于反序列化对象,我通过配置 Feature.DisableCircularReferenceDetect
的方式解决了,但对于JSON数组, JSONArray.parseArray()
方法并没有提供类似的开关,一旦反序列化$ref中存在不正确的表达式,会出现栈溢出问题,请问这个问题怎么解决?
JSON对象反序列化写法(可以成功)
JSONObject.parseObject(jsonString, Dto.class, Feature.DisableCircularReferenceDetect);
JSON数组反序列化写法(无法成功,没有临时开关,关闭全局开关也不生效)
JSONArray.parseArray(jsonArrayString, Dto.class);
重新罗列一下我的问题
- 对于1.2.83办法的fastjson,如何解决存在$ref文本的JSON数组反序列化问题(如何关闭引用检查)
- 通过"$ref": "#xxx"的文本写法貌似可以解决这个问题,但不符合我们的文本设计,也不知道有没有什么风险
2条答案
按热度按时间pgccezyw1#
没有有好心人帮忙解答一下~
bkhjykvo2#
我也遇到了,有谁能解决嘛,坑啊