示例:JSON格式的字符串
{
"test":"test",
"info":[
{
"name":"a",
"sex":"1"
},
{
"name":"b",
"sex":"2"
}
]
}
通过fastJSON转换后,字符串顺序有变化
//转换JSON数组
JSON.parseArray(jsonStr);
//转换JSON对象
JSON.parseObject(jsonStr);
转换后的结果
{
"test":"test",
"info":[
{
"sex":"1",
"name":"a"
},
{
"sex":"2",
"name":"b"
}
]
}
如果想要保持JSON字符串的顺序不变化,则需要定义JSON的排序规则
1、JSONObject如何设置?
JSON.parseObject(jsonStr, Feature.OrderedField);
2、JSONArray如何设置?
/**
* JSONArray有序排序
*/
public JSONArray ParseArrayOrderly(String jsonStr){
//JSON 默认排序
int defaultParserFeature = JSON.DEFAULT_PARSER_FEATURE;
//设置Feature.OrderedField 按照字符串中的顺序排序
JSON.DEFAULT_PARSER_FEATURE = Feature.config(JSON.DEFAULT_PARSER_FEATURE, Feature.OrderedField, true);
JSONArray jsonArray = JSONArray.parseArray(jsonStr);
//JSON.DEFAULT_PARSER_FEATURE设置为全局设置 不确定影响范围,使用完还原默认值
JSON.DEFAULT_PARSER_FEATURE = defaultParserFeature;
return jsonArray;
}