【发布时间】:2014-06-19 04:33:15
【问题描述】:
我已经写了一些代码;
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 对象中使用数组来确保顺序。 link
-
感谢您的建议@SergioMartinez,但如果我确切知道类型,我可以使用您提供的链接。如果我不知道呢?我只需要输入字符串,因为您看到没有字段名称。我仍在尝试做,但没有任何效果。