使用Java中的JSONArray值对JSONObject进行排序

时间:2016-08-07 19:24:01

标签: java json json-simple

我正在尝试排序JSONObject:

{
  "coords": {
    "27": {
      "x": [70,71,72],
      "y": [1945,1946,1947],
      "lineNumber": [
        19
      ]
    },
    "29": {
      "x": [70,71,72],
      "y": [1945,1946,1947],
      "lineNumber": [
        91
      ]
    },
    "2333": {
      "x": [70,71,72],
      "y": [1945,1946,1947],
      "lineNumber": [
        10
      ]
    }
  }
}

我想在coords w.r.t中对值lineNumber内的JSONObject进行排序。 lineNumber数组内部始终只有一个元素。我使用的是简单的JSON。

1 个答案:

答案 0 :(得分:0)

不幸的是,由于您无法按键对地图进行排序,因此没有一种干净的方法。

您可以将地图转换为Map.Entry<K,V>个对象的列表。在您的情况下,条目的类型为Map.Entry<String, JSONObject>coords内的条目)。

然后可以按条目V或者JSONObject的情况对列表进行排序。最简单的方法是编写自定义Comparator并通过Collections.sort(...)对列表进行排序。