问题描述
问题1:
当从前端传递过来的Json字符串为下列情况时:
{
"id" : 123,
"name" : "Mike",
"obj" : {
"item1" : "aa",
"item2" : "bb",
"item3" : "cc"
}
}
我们通过 fastjson解析时,可能会获得一个字段顺序不一致的json对象:
{
"id" : 123,
"name" : "Mike",
"obj" : {
"item2" : "bb",
"item1" : "aa",
"item3" : "cc"
}
}
问题2:
当后端拼接JSON字符串,并返回给前段时,也会存在json字段排列混乱的问题
解决方式
问题1–解决方案:
/*
解析时,parseObject第二个参数写Feature.OrderedField
表示解析时,让json字段顺序按照原有的排列
*/
JSONObject respondeBodyJson = JSONObject.parseObject(jsonStr, Feature.OrderedField);
问题2–解决方案:
//方法1
JSONObject json = new JSONObject(true);
//方法2
JSONObject json = new JSONObject(new LinkedHashMap());
这两个方法原理一样的,具体可以看JSONObject源码: