如何取消fastjson的field缺省排序??

aircjm 发布于 2016/06/12 13:07
阅读 1K+
收藏 1
使用版本为1.1.41的fastJson ,由于业务要求参数格式不相同,只能转化成jsonObject,不能转换成Bean的形式,所以无法进行对属性手动排序。


String jsonParams = "{\"name\":\"Tom\",\"age\":20,\"height\":180.5,\"gender\":\"Male\",\"weight\":80.5}";
JSONObject jsonObject = JSON.parseObject(jsonParams); 
System.out.println(jsonObject.toJSONString()); 
// 输出结果为{"age":20,"gender":"Male","height":180.5,"name":"Tom","weight":80.5} 
// 输出结果按照键的顺序进行了排序操作,如何忽略默认排序,让jsonObject还是按照{"name":"Tom","age":20,"height":180.5,"gender":"Male","weight":80.5}该顺序输出
谢谢

加载中
0
亭舸翁
亭舸翁
linkedhashmap
a
aircjm
而且LinkedHashMap只会对一级结构进行排序,并不会对下层结果进行排序,可能会造成问题
a
aircjm
使用LinkedHashMap就脱离了原有设计,能在fastjson基础上解决这个问题最好,虽然fastjson的JsonObject实质上还是HashMap
0
a
aircjm

使用Feature.OrderedField

JSON.parseObject("...", Feature.OrderedField);

1.1.41不支持JSON.parseObject("...", Feature.OrderedField);

已经升级为最新版本1.2.12了,该版本是可以不缺省排序的

j
jerry_oschina
good
freedomcat
freedomcat
一试就灵
0
j
jerry_oschina

非常感谢,解决了我的大问题

返回顶部
顶部