2016-08-07 5 views
1

Я следующий JSONObject я пытаюсь разобраться:Сортировка JSONObject используя значение JSONArray в Java

{ 
    "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 w.r.t значения lineNumber. lineNumber массив всегда имеет только один элемент внутри. Я использую простой JSON.

+0

У всех 'lineNumber' есть один элемент? Если да, то почему они определяются как массивы? –

+0

@JanezKuhar Я думал то же самое, но реализация веб-сервиса выполняется кем-то другим. Который я не могу изменить, поэтому у меня проблемы, так как я тоже новичок в Java. – Seeker

ответ

0

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

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

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

Смежные вопросы