欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSONObject.parseObject,fastjson属性排序问题

程序员文章站 2022-05-17 11:38:17
...

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后得到的字符串属性不管多少层属性,都是有序的。