FastJson 如何生成有序的JsonObject对象

背景

有些情况下在JSON字符串转为Json对象的时候,我们希望不破坏掉原有的数据顺序结构,这个应该如何处理?

我们都知道JSON对象一般都是以key : value 的形式存储,类似于java中的Map,hashMap 在结构上 是数组加链表,进行哈希取模的时候无法保证顺序,而LinkedHashMap 是可以保证顺序的,那么在Json对象中 是否有这样的结构呢?确实是有的,接下来我们继续看一下

这里我们以国内比较著名的FastJson 来做例子:

我们这里可以看到,在JsonObject 中作为数据存储的map 根据条件会在 HashMap 和 LinkedHashMap中实例化一个对象。那么说明我们确实可以将String类型的转为有序的Key : Value  结构,那么我们应该如何使用的?

一般来说,我们使用JSON  一般都只是转为JSON对象,并没有要求,所以一般是使用下面方法

JSONObject jsonObject = JSON.parseObject(json);

但是我们现在要有序,应该如何使用?

只需要加入一个Feature 标志就行

JSONObject jsonObject = JSON.parseObject(json, Feature.OrderedField);

 

当然Feature 枚举类中还有很多其他的一些选项,可以自己去查看。 

猜你喜欢

转载自blog.csdn.net/wangxuelei036/article/details/107787589