一,setCycleDetectionStrategy 防止自包含
- /**
- *这里测试如果含有自包含的时候需要CycleDetectionStrategy
- */
- publicstaticvoidtestCycleObject(){
- CycleObjectobject=newCycleObject();
- object.setMemberId("yajuntest");
- object.setSex("male");
- JsonConfigjsonConfig=newJsonConfig();
- jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
- JSONObjectjson=JSONObject.fromObject(object,jsonConfig);
- System.out.println(json);
- }
- publicstaticvoidmain(String[]args){
- JsonTest.testCycleObject();
- }
其中 CycleObject.java是我自己写的一个类:
- publicclassCycleObject{
- privateStringmemberId;
- privateStringsex;
- privateCycleObjectme=this;
- ……//getters&&setters
- }
输出 {"sex":"male","memberId":"yajuntest","me":null}
二,setExcludes:排除需要序列化成json的属性
- publicstaticvoidtestExcludeProperites(){
- Stringstr="{'string':'JSON','integer':1,'double':2.0,'boolean':true}";
- JsonConfigjsonConfig=newJsonConfig();
- jsonConfig.setExcludes(newString[]{ "double","boolean"});
- JSONObjectjsonObject=(JSONObject)JSONSerializer.toJSON(str,jsonConfig);
- System.out.println(jsonObject.getString("string"));
- System.out.println(jsonObject.getInt("integer"));
- System.out.println(jsonObject.has("double"));
- System.out.println(jsonObject.has("boolean"));
- }
- publicstaticvoidmain(String[]args){
- JsonTest.testExcludeProperites();
- }
三,setIgnoreDefaultExcludes
- @SuppressWarnings("unchecked")
- publicstaticvoidtestMap(){
- Mapmap=newHashMap();
- map.put("name","json");
- map.put("class","ddd");
- JsonConfigconfig=newJsonConfig();
- config.setIgnoreDefaultExcludes(true);