原创

JSONObject解决顺序不正确

温馨提示:
本文最后更新于 2022年09月01日,已超过 602 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

博主常用的JSON工具为 com.alibaba.fastjson

JSONObject只是一种数据结构,可以理解为JSON格式的数据结构,JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。但是大家在使用JSONObject的时候,它的顺序不对,不知道要怎么解决?下面我们就给大家讲解一下。

由于 com.alibaba.fastjson.JSONObject 默认是由hashMap组成的,所以内容存放的顺序并不是有序的

如果要实现有序的话需要使用LinkedHashMap的方式,在新建Json对象的时候要这样写

JSONObject jsonObject= new JSONObject(new LinkedHashMap<>());

有时候Json的顺序并不是我们想要的时候,需要进行下倒叙,这里的思路是可以把json转换为ArrayList然后再顺序反转

ArrayList sleepData = new ArrayList();
sleepData.addAll(sleepList);
Collections.reverse(sleepData);

在这里需要注意的是ArrayList的底层是数组,在Collections.reverse()方法进行反转顺序的时候操作的数组,会导致所有引用改集合的变量顺序都反转了;所以在必要的时候自己new一个对象进行操作。

JsonObject 基础认识与运用

JsonObject 就是常说的json。是一种重要的数据传输对象。其格式为{"key1":value1,"key2",value2....};key 必须是字符串。

因为ajax请求不刷新页面,但配合js可以实现局部刷新,因此json常常被用来作为异步请求的返回对象使用。

通过response.getWriter()获取PrintWriter pw,然后pw.print(json)。如果没有设置response.setContentType("application/json; charset=utf-8"); 则需要自己再js中进行解析。

//插入元素
JSONObject jsonObject = JSONObject.parseObject(param);
kpiCfgObject.put(key, value);

//遍历
for (Map.Entryentry: jsonObject.entrySet())
{
    entry.getKey() + "&" + entry.getValue()
        .toString();
}
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录