JSONObject.parseObject,fastjson属性排序问题

阅读更多

fastjson中,如果需要得到有序的属性排列,有两种方案

Map pramMap = JSONObject.parseObject(reqParams, TreeMap.class);
String serial = JSON.toJSONString(pramMap, SerializerFeature.SortField)

 上面这段代码得到的字符串字段就是有序的,但是这段代码有个前提,那就是paramMap必须是TreeMap才可以,如果paramMap是HashMap,则SerializerFeature.SortField是不起任何鸟用的,

但是上面代码还有个缺陷,那就是如果属性里面套属性,这个时候第二次的属性的顺序依然是乱的,所以就出现了第二种方案:

 

Map pramMap = JSONObject.parseObject(reqParams, Feature.OrderedField);
String serial = JSON.toJSONString(pramMap);

 这种方案的优势就是解决上面的属性是对象,对象里面的属性顺序问题,因为第一步代码做完之后得到的Map是有序的jsonObject对象,然后把这个对象toJSONString后得到的字符串属性不管多少层属性,都是有序的。

你可能感兴趣的:(fastjson,排序,属性)