static String json = "{ \"2019-08\":\"朋友圈主要活跃在\", \"2019-07\":\"d1\", \"2019-06\":\"通话时间占比为94%\", \"2019-05\":\"朋友圈在哪里\", \"2019-04\":\"regular_circle\" }";
前面的那个字符串直接用
JSONObject jsonObject = JSONObject.parseObject(json);
转换会返回
{"2019-06":"青岛地区通话时间占比为94%","2019-05":"朋友圈在哪里","2019-08":"朋友圈主要活跃在青岛地区(居住地)","2019-07":"d1","2019-04":"regular_circle"}
和之前的顺序不一致
原因
JsonObject内部是用Hashmap来存储的,所以输出是按key的排序来的,如果要让JsonObject按固定顺序(put的顺序)排列,可以修改JsonObject的定义HashMap改为LinkedHashMap
解决方案
LinkedHashMap<String, Object> jsonMap = JSON.parseObject(json,LinkedHashMap.class, Feature.OrderedField);
JSONObject jsonObject = new JSONObject(true);
jsonObject.putAll(jsonMap);
System.out.println(jsonObject.toString());