我可以排序的JSONObject的JSONArray但我還是堅持,當我需要一個像如下排序數組:如何對包含另一個JSONObject的JSONObject的JSONArray進行排序?
[{
"key1": "value1",
"key2": "value2",
"key3": {
"key4": "value4",
"key5": "value5"
}
}, {
"key1": "value1",
"key2": "value2",
"key3": {
"key4": "value4",
"key5": "value5"
}
}]
我要作爲排序依據「鍵4」這個數組。
這裏是我的代碼,而對key1的
public static JSONArray sortJsonArray(JSONArray array, final String key) throws JSONException
{
List<JSONObject> jsons = new ArrayList<JSONObject>();
for (int i = 0; i < array.length(); i++) {
jsons.add(array.getJSONObject(i));
}
Collections.sort(jsons, new Comparator<JSONObject>() {
@Override
public int compare(JSONObject lhs, JSONObject rhs) {
String lid = null;
String rid = null;
try {
lid = lhs.getString(key);
rid = rhs.getString(key);
} catch (JSONException e) {
e.printStackTrace();
}
// Here you could parse string id to integer and then compare.
return lid.compareTo(rid);
}
});
return new JSONArray(jsons);
}
據我所知,JSONArray是不是一個排序的數據結構,你需要把將JSONObjects放入一個'List'然後排序 –
對,我說了,但我只能對Key1或key2進行排序;我如何在key4上對它進行排序? –
@ cricket_007:我添加了我的代碼。 –