fastjson JSONArray.parseArray(str,Bean.class) 乱序

hs1rzwqc  于 2021-11-27  发布在  Java
关注(0)|答案(3)|浏览(656)

问题:JSONArray.parseArray 不能根据传入的字符串实体顺序进行有序返回List数组。

比如传入:
#1201
传入的字符串对象顺序被乱序了。。。。

关键代码:JSONArray.parseArray(“”,Beasn.class);

7z5jn7bk

7z5jn7bk1#

1201是个bean,没有数组orList??

能否给个具体的例子,谢谢。

zphenhs4

zphenhs42#

问题1:是否针对JSONArray的parseArray加一个方法:里面的对象data2,data1,data的key默认有序(按先后顺序组装对象)。
[
{ "data2": {
"data8": "206751.82",
"data7": "0",
"data6": "775.32",
"data5": "367.71",
"data4": "201411",
"data3": "6217004260004601308",
"data2": "null",
"data1": "20141121"
}
},
{ "data1": {
"data8": "206384.11",
"data7": "0",
"data6": "0",
"data5": "0.54",
"data4": "201412",
"data3": "6217004260004601308",
"data2": "null",
"data1": "20141226"
}
},
{"data9": {
"data8": "206384.11",
"data7": "0",
"data6": "0",
"data5": "0.54",
"data4": "201412",
"data3": "6217004260004601308",
"data2": "null",
"data1": "20141226"
}
}]

note:fastjson v1.2.31

i86rm4rw

i86rm4rw3#

Bean的field or property保持顺序吗?

Bean本身的field or property是无序的,parser后的Bean,你怎么体现顺序呢?
或者,你想要的是,再次toJsonString的时候,跟这个顺序相同?
不过你需要考虑一点,Bean本身的field or property是无序的,从json string变成bean的时候,
原来在json string的顺序信息就丢失了。

如果你想要来回都有序,建议不要parser成Bean,parser成JSONObject对象,在把JSONObject对象toJSONString,这样应该一直都是OK的。

相关问题