对json进行key字母排序
·
包含嵌套在内的json数据也会一起排序,
json的底层其实就是map 此方法是将传入的json包括嵌套在内的json的底层map替换为了 TreeMap(TreeMap实现了SortedMap接口,保证了有序性) 从而保证了key的顺序性
当然也可以自己重写comparator方法进行自定义排序
package cn.wcy.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import java.util.*;
public class JSONUtil {
public static JSONObject getSortJson(JSONObject json) {
if (Objects.isNull(json)) {
return new JSONObject();
}
Set<String> keySet = json.keySet();
SortedMap<String, Object> map = new TreeMap<>();
for (String key:keySet) {
Object value = json.get(key);
if (Objects.nonNull(value) && value instanceof JSONArray) {
JSONArray array = json.getJSONArray(key);
JSONArray jsonArray = new JSONArray(new LinkedList<>());
for (int i=0;i<array.size();i++) {
JSONObject sortJson = getSortJson(array.getJSONObject(i));
jsonArray.add(sortJson);
}
map.put(key, jsonArray);
} else if (Objects.nonNull(value) && value instanceof JSONObject) {
JSONObject sortJson = getSortJson(json.getJSONObject(key));
map.put(key, sortJson);
} else {
map.put(key, value);
}
}
return new JSONObject(map);
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)