使用fastjson解析以及赋予json数据时,json字段顺序不一致问题

问题描述

问题1:
当从前端传递过来的Json字符串为下列情况时:

{
	"id" : 123,
	"name" : "Mike",
	"obj" : {
		"item1" : "aa",
		"item2" : "bb",
		"item3" : "cc"
	}
}

我们通过 fastjson解析时,可能会获得一个字段顺序不一致的json对象:

{
	"id" : 123,
	"name" : "Mike",
	"obj" : {
		"item2" : "bb",
		"item1" : "aa",
		"item3" : "cc"
	}
}

问题2:
当后端拼接JSON字符串,并返回给前段时,也会存在json字段排列混乱的问题

解决方式

问题1–解决方案:

/*
解析时,parseObject第二个参数写Feature.OrderedField
表示解析时,让json字段顺序按照原有的排列
*/
JSONObject respondeBodyJson = JSONObject.parseObject(jsonStr, Feature.OrderedField);

问题2–解决方案:

//方法1
JSONObject json = new JSONObject(true);
//方法2
JSONObject json = new JSONObject(new LinkedHashMap());

这两个方法原理一样的,具体可以看JSONObject源码:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值