在使用fastjson的JSONObject的put数据之后,排序会发生变化,例如:
public static void main(String[] args) throws Exception {
JSONObject jsonObject = new JSONObject();
jsonObject.put("b", "2222");
jsonObject.put("a", "1111");
jsonObject.put("d", "4444");
jsonObject.put("c", "3333");
String jsonString = jsonObject.toJSONString();
System.out.println(jsonObject);
}
因为JsonObject 默认空参构造方法是用 HashMap 来存储的,所以输出是按 key 的排序来的,如果要让 JsonObject 按固定顺序(put 的顺序)排列,可以修改 JsonObject 的定义 HashMap 改为 LinkedHashMap
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());