如何在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

回到顶部