【问题标题】:Sorting JSONObject using a value of a JSONArray in Java在 Java 中使用 JSONArray 的值对 JSONObject 进行排序
【发布时间】:2016-08-07 19:24:01
【问题描述】:

我正在尝试排序以下 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 中的 JSONObjects 进行排序,而值 lineNumberlineNumber 数组内部总是只有一个元素。我正在使用简单的 JSON。

【问题讨论】:

  • 所有lineNumbers 都包含一个元素吗?如果是这样,为什么将它们定义为数组?
  • @JanezKuhar 我也有同样的想法,但是 Web 服务的实现是由其他人完成的。我无法改变这就是为什么我遇到了一些麻烦,因为我也是 Java 新手。

标签: java json json-simple


【解决方案1】:

不幸的是,没有一种干净的方法可以做到这一点。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 2015-10-27
    相关资源
    最近更新 更多