gpt4 book ai didi

java - Json 对象项目顺序

转载 作者:行者123 更新时间:2023-11-30 03:55:05 32 4
gpt4 key购买 nike

我写了一些代码;

JSONArray ja = new JSONArray();
try {
ResultSetMetaData metaData = rslt.getMetaData();
while ( rslt.next() ){
JSONObject jo = new JSONObject();
LinkedHashMap<String, String> jsonOrderedMap = new LinkedHashMap<String, String>();

for(int i = 0 ; i < metaData.getColumnCount(); i++){
jsonOrderedMap.put(metaData.getColumnName(i+1), rslt.getString(i+1) );
}
System.out.println(jsonOrderedMap);
/* This doesn't work */
ja.put(jsonOrderedMap);
//System.out.println(ja);

}
} catch (Exception e) {
}

我正在尝试订购我的 json 对象(我知道它不应该订购,但我需要它)它一直有效,直到我尝试将 jsonOrderedMap 放入 json 数组。在 JsonArray 之前,json 对象看起来像这样:

{CUSTOMER_SECTOR_ID=611, CUSTOMER_NO=0013114193, CUSTOMER_NAME=asdfasdfds}

将一些 jsonOrderedMap 放入 jsonArray 后,看起来像这样;

[{"CUSTOMER_NAME":"qweqwe","CUSTOMER_NO":"0000003124","CUSTOMER_SECTOR_ID":"611"},
{"CUSTOMER_NAME":"MAD.","CUSTOMER_NO":"0000003133","CUSTOMER_SECTOR_ID":"611"}]

正如您所看到的,它的顺序不同。你有什么办法解决它吗?我正在使用 gson 库。

最佳答案

JSON 对象中的字段没有任何顺序,因为它们应该通过名称(键)访问。

如果您需要保留顺序,则必须使用 JSON 数组。

我不明白为什么您需要对命名字段进行排序,但如果您确实需要这样做,您可以使用包含 JSON 对象字段的数组。

This post描述了如何做到这一点(感谢@SergioMartinez 提供的链接,它节省了我很多时间!)。

关于java - Json 对象项目顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23429017/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com