Sortierung durch einige der Felder in Json-Objekt
Ich habe eine Josn-Datei mit array von Objekten, wie :
{
"tId": "Something",
"StartTime": "05/29/2013 5:28:33 PM",
"CompleteTime": "05/29/2013 5:28:33 PM",
"Status": "success",
"MachineName": "Machine",
},
Ich habe eine Sortierung nach der start-Uhrzeit und der Rechnername und zeigen nur diese beiden Dinge für den Benutzer. Wenn die Startzeit ist die gleiche für 2 oder mehr Aufgaben, dann wird das Ergebnis für diejenigen, die sortiert werden sollen, nach-zu-Maschine-name. Ich bin versucht zu konvertieren, JsonArray, die ich nach dem Parsen in eine Liste und verwenden Sie benutzerdefinierte Sammlungen.Sortieren Sie danach. Bin ich in die richtige Richtung gehen ? Wie ändere ich den Komparator in Sammlungen.Sortieren Sortieren nach Computer-name im Falle der gleichen Startzeit
JsonArray allTasks = jsonParser.parse(reader).getAsJsonArray();
ArrayList<String> list = new ArrayList<String>();
if (allTasks != null) {
int len = allTasks.size();
for (int i=0;i<len;i++){
list.add(allTasks .get(i).toString());
}
}
for (String task : list) {
//code to fetch just 2 fields from this task and then sort according to start time
}
- Ja, es sieht aus wie Sie gehen in die richtige Richtung. Was ist Ihre Frage?
- Wie ändere ich den Komparator in Sammlungen.Sortieren Sortieren nach Computer-name im Falle der gleichen Startzeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Sortier-routine wird in etwa so Aussehen, je nach den Besonderheiten, wie Sie Ihre JSON/Objekt-mapping:
Erstellen Sie eine Klasse
MyObject
halten, Daten von einem Objekt (tId, startTime, completeTime, status, machineName).Dann analysieren jede
JsonObject
zuMyObject
und fügen Sie es zu einemList<MyObject>
.Verwenden Sie dann
Collections.sort()
und ein comparator zum Sortieren der Liste.