JSONObject put数据之后,排序会发生变化。
因为JsonObject内部是用Hashmap来存储的,所以输出是按key的排序来的,如果要让JsonObject按固定顺序(put的顺序)排列,可以修改JsonObject的定义HashMap改为LinkedHashMap。
JSONObject jsonObject1 = new JSONObject(); //无序的HashMap
JSONObject jsonObject2 = new JSONObject(true); //有序设置方法一,LinkedHashMap
JSONObject jsonObject3 = new JSONObject(new LinkedHashMap<>()); //有序设置方法二
Map 数据格式化
//有序
Map<String, Object> map = new LinkedHashMap<>();
JSON.toJSONString(map);
//无序
Map<String, Object> map = new HashMap<>();
JSON.toJSONString(map);
Java实体转JSON保持顺序一致(实体类注解@JSONField(ordinal = n))
@JSONField(ordinal = 1)
private String st1 ;
@JSONField(ordinal = 2)
private String st2;