当前位置: 首页 > 知识库问答 >
问题:

如何在android中对JSONArray进行排序

江文斌
2023-03-14

如何在Android上按其标记名升序和降序排序JSONArray。

在我的应用程序中,我有一个如下所示的JSON,需要根据users选项显示数据(按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");
    .....
}
..............  
{
"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": [...]
    }
]

}

共有1个答案

司易安
2023-03-14
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进行排序。 在我的应用程序中,我有一个类似于以下内容的JSON,需要根据用户选项显示数据(按user_id标记按升序或降序排序)。我已将JSON解析如下: 这是我的JSON响应: 解析时,我需要按“ user_id”标签名称排序的“结果” JSON数组,如何在Android中做到这一点? 问题答案: 这段代码可以返回排序后

  • 问题内容: 如何按对象的字段对对象的JSONArray排序? 输入: 所需的输出(按“名称”字段排序): 问题答案: 试试这个: 排序后的JSONArray现在存储在对象中。

  • 问题内容: 我做了一个jsonobjects的jsonarray。现在,我需要根据jsonobjects中的值对JSONArray进行排序。以前,我对自定义对象的ArrayList进行如下排序: 比较器: 然后对arraylist进行排序: 要么: 但是当我使用JSONArray尝试同样的事情时(JA =我的jsonarray) Collections.sort给出一个错误: 类型Collecti

  • 我已经制作了一个JsonObjects的jsonarray。现在我需要根据JSONObjects中的值对JSONArray进行排序。以前,我对自定义对象的ArrayLists进行排序,如下所示: 比较器: 然后对ArrayList进行排序: 有人知道如何对JSONArray进行排序吗?

  • 在我的应用程序中,我想将一些数据从服务器添加到的适配器中。 我编写了下面的代码,可以从服务器获取数据并显示到中。 但我的json没有用服务器的字母表排序。 我想在将这些数据添加到之前,先用字母表排序并添加到中。 我的json: 在添加到之前,我希望在companyName中使用Alphabet对json进行排序。 但我希望将其排序到Android而不是服务器。 我的Java代码: 在将json添加