16.判断JSON是JSONObject或者JSONArray

JSONObject json=new JSONObject();
Object json1=new JSONTokener(rrinfo.getParametersJson()).nextValue();
if(json1 instanceof JSONObject){
json =JSONObject.parseObject(rrinfo.getParametersJson());
}else if(json1 instanceof JSONArray){
JSONArray jsonArr=JSONArray.parseArray(rrinfo.getParametersJson());
json=JSONObject.parseObject((String) jsonArr.get(0));
}

将对象放入map对象 ,通过Alibaba的JSONObject.toString()方法,值为null的不会转换;
比如:
FilterEntryPo fep=apicFilterDaoImpl.searchFilterEntryById(id);
Map<String ,Object> map=new HashMap<String,Object>();
Map<String ,Object> attrMap=new HashMap<String,Object>();
attrMap.put("attributes", fep);
map.put("vzEntry", attrMap);
String str=JSONObject.toJSONString(map);

当String字符串转换为json时,可能恢复发生顺序问题,转换出来的json字符串不再是String字符串的顺序,
解决办法:用Alibaba的JSONObject和JSON对象
LinkedHashMap<String, Object> json = JSON.parseObject(message,LinkedHashMap.class, Feature.OrderedField);
JSONObject jsonObject=new JSONObject(true);
jsonObject.putAll(json);

posted @ 2022-09-06 23:10  NIANER2011  阅读(1581)  评论(0编辑  收藏  举报