JSONObject按照key的A——Z顺序排序
最近对接抖⾳api,发现接⼝参数需要进⾏对key进⾏排序,搜了⼀下,发现好多⽂章都采⽤
JSONObject object2 = new JSONObject(true);
这种⽅式,⼤多数都采⽤这种⽅式,⼀看就是相互吵的,没有验证,这种⽅式是错误的。这样初始化,是初始化了⼀个有序的JSON,⽽不是排序的JSON,说⽩了,就是会按照你put的顺序存储。
⼤家都知道,java中map集合是⽆序的,我们需要采⽤的集合类型是SortedMap,以下是验证:object to
JSONObject object1 = new JSONObject();
JSONObject object2 = new JSONObject(true);
SortedMap map = new TreeMap();
object1.put("order",123);
object2.put("order",123);
map.put("order",123);
object1.put("name","张三");
object2.put("name","李四");
map.put("name","王五");
object1.put("age",1);
object2.put("age",2);
map.put("age",2);
System.out.JSONString());
System.out.JSONString());
System.out.String());
这⾥我定义了三个对象,object1是普通的json,object2是有序的json,map是排序的json,我们看⼀下输出结果:
很明显,object1是⽆序的,object2是按照插⼊的顺序存储的,⽽map才是真正的进⾏排序。
还有⼀种⽅式,可以⾃⼰进⾏排序,⽐较每个key⾸位的ascll值,然后进⾏排序,再插⼊到⼀个有序的json集合⾥⾯,也可以实现,只不过⽐较⿇烦。
⼤家在⽹上查阅资料,⼀定要⾃⼰验证⼀下

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。