FastJson 如何生成有序的JsonObject对象

在需要保持JSON数据顺序的情况下,通常使用HashMap无法保证顺序,但FastJson提供了使用LinkedHashMap来实现有序的JsonObject。通过设置FastJson的Feature,可以在转换时确保键值对的顺序。具体操作是在转换时启用特定的Feature标志。
摘要由CSDN通过智能技术生成

背景

有些情况下在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 枚举类中还有很多其他的一些选项,可以自己去查看。 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值