json lib 解決級聯解析問題

2021-08-30 23:22:57 字數 1231 閱讀 3218

[b]問題解釋[/b]

級聯解析就是類間相互引用,比如說classa中有classb的引用,classb中也有classa的引用,這種情況在hibernate中的雙向關聯會很常見。如果是這種情況,在json-lib解析的過程中,會出現net.sf.json.jsonexception: there is a cycle in the hierarchy異常。

[b]解決辦法[/b]

1、採用json-lib提供的過濾欄位的方法

jsonconfig config = new jsonconfig();

string excludeproperties = new string;

config.setexcludes(excludeproperties);

jsonobject jsonobject = jsonobject.fromobject(obj,config);

string jsonstr = jsonobject.tostring();

2、設定jsonconfig的迴圈策略

jsonconfig config = new jsonconfig();

config.setignoredefaultexcludes(false);

config.setcycledetectionstrategy(cycledetectionstrategy.lenient);

jsonobject jsonobject = jsonobject.fromobject(obj,config);

string jsonstr = jsonobject.tostring();

cycledetectionstrategy 是指遇到迴圈解析時將採用的策略。

cycledetectionstrategy 有如下幾種取值:

lenient 

returns empty array and null object

noprop

returns a special object (ignore_property_obj)

that indicates the entire property should be ignored

strict

throws a jsonexception

Json lib 解析中文位址亂碼問題

net.sf.json.jsonexception expected a or at character 65 of parktel 1521611100 parkname 恆盛大廈 parkid 32,parkaddress 上海市閘北區華盛 2 parktype 0,totalparkingsp...

java利用json lib解析json字串

json lib 2.3 jdk13.jar ezmorph 1.0.3.jar commons lang.jar commons logging.jar commons beanutils.jar xom 1.1.jar commons collections 3.2.jar string qr ...

linux gpio子系統級聯中斷解析

linux 4.9 drivers pinctrl 中的gpio子系統中斷級聯解析 dts相關 中斷相關的device tree知識回顧 想要進行對映,首先要了解interrupt controller的拓撲結構。系統中的interrupt controller的拓撲結構以及其interrupt r...