2016-08-07 13 views
1

Ich habe folgende JSONObject ich versuche, zu sortieren:Sortierung JSONObject einen Wert eines JSONArray in Java unter Verwendung von

{ 
    "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 
     ] 
    } 
    } 
} 

ich die JSONObjects innerhalb coords w.r.t den Wert lineNumber sortieren wollte. lineNumber Array hat immer nur ein Element im Inneren. Ich verwende einfaches JSON.

+0

Haben alle 'lineNumber' ein einzelnes Element? Wenn ja, warum sind sie als Arrays definiert? –

+0

@JanezKuhar Ich dachte das Gleiche, aber die Implementierung von Web-Service wird von jemand anderem getan. Was ich nicht ändern kann, ist, dass ich ein bisschen Probleme habe, da ich auch neu in Java bin. – Seeker

Antwort

0

Leider gibt es keine saubere Möglichkeit, dies zu tun, da Sie Ihre Karte nicht nach Schlüsseln sortieren können.

Sie können Ihre Karte in eine Liste von Map.Entry<K,V> Objekten konvertieren. In Ihrem Fall sind die Einträge vom Typ Map.Entry<String, JSONObject> (Einträge innerhalb coords).

Die Liste kann dann nach dem Eintrag V oder in Ihrem Fall JSONObject s sortiert werden. Der einfachste Weg, dies zu tun ist, schreiben Sie eine benutzerdefinierte Comparator und sortieren Sie Ihre Liste über Collections.sort(...).