关于fastjson解析后的属性排序问题解决方案

问题起因:

1
2
3
String testJson = "{\"lh_u\":32,\"ps\":7,\"qt\":24,\"ns\":87,\"gm\":11,\"dp\":2,\"lh_ua\":34,\"ft\":82,\"jzsj\":\"24时\",\"lg\":71,\"yt\":6,\"jzrq\":\"3月4日\",\"ba\":62}";
JSONObject jsonObject = JSON.parseObject(jsonString); ----- ①
System.out.println(jsonObject.toJSONString());

上述方法得到的jsonObject属性排序和字符串的字段排序是一样的,如果想对jsonObject的属性进行排序,可以做此处理:

1
2
JSONObject jsonObjectNew1 = JSON.parseObject(JSON.toJSONString(jsonObject,SerializerFeature.MapSortField));
JSONObject jsonObjectNew2 = JSON.parseObject(JSON.toJSONString(jsonObject,SerializerFeature.MapSortField),Feature.OrderedField);

将jsonObject转成按字母排序的字符串,然后再转成jsonObject对象,再次转成jsonObject时如果不加Feature.OrderedField,则jsonObject和①中的一样,加上则保持属性顺序不变。
参考文章

0%