如何在Android中对JSONArray进行排序
如何在Android上按标签名称的升序和降序对JSONArray进行排序。
在我的应用程序中,我有一个类似于以下内容的JSON,需要根据用户选项显示数据(按user_id标记按升序或降序排序)。我已将JSON解析如下:
JSONObject mObject = new JSONObject(JSONResponse);String commentsVal = mObject.getString("message");
String resultVal = mObject.getString("result");
JSONArray resultArray = new JSONArray(resultVal);
int resultSize = resultArray.length();
for (int i = 0; i < resultArray.length(); i++) {
JSONObject resultObj = resultArray.getJSONObject(i);
resultObj.getString("comment_id");
.....
}
..............
这是我的JSON响应:
{"success": 1,
"message": "some message",
"result": [
{
"comment_id": "43906",
"comp_id": "116725",
"user_id": "48322",
"agree": "0",
.....
"replies": [....]
},
{
"comment_id": "43905",
"comp_id": "116725",
"user_id": "48248",
"agree": "0",
.......
"replies": [...]
}
]
}
解析时,我需要按“ user_id”标签名称排序的“结果” JSON数组,如何在Android中做到这一点?
回答:
public static JSONArray sortJsonArray(JSONArray array) { 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 = lhs.getString("comment_id");
String rid = rhs.getString("comment_id");
// Here you could parse string id to integer and then compare.
return lid.compareTo(rid);
}
});
return new JSONArray(jsons);
}
这段代码可以返回排序后的JSONArray,但是我仍然建议您将JSONObject解析为自己的数据bean,然后对它们进行排序。
以上是 如何在Android中对JSONArray进行排序 的全部内容, 来源链接: utcz.com/qa/413788.html