Сортировка JSONObject с использованием значения JSONArray в Java

У меня есть следующий 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
      ]
    }
  }
}

Я хотел отсортировать JSONObjects внутри coords по стоимости lineNumber, lineNumber массив всегда имеет только один элемент внутри. Я использую простой JSON.

1 ответ

К сожалению, нет чистого способа сделать это, так как вы не можете отсортировать карту по ключам.

Вы можете преобразовать свою карту в список Map.Entry<K,V> объекты. В вашем случае записи имеют тип Map.Entry<String, JSONObject> (записи внутри coords).

Список может быть отсортирован по записи V или в вашем случае JSONObject s. Самый простой способ сделать это - написать собственный компаратор и отсортировать список с помощью Collections.sort (...).

Другие вопросы по тегам