Parsen der JSON-Zeichenfolge in Android

7

Parsen von JSON scheint hier ein recht häufiges Diskussionsthema zu sein. Ich habe mich umgesehen und habe immer noch nicht gefunden, wonach ich suche. Hier ist mein Code für meinen HttpClient

%Vor%

Ich verwende einen HttpClient, um eine JSON-Anfrage an einen Server zu senden. Der Server gibt dann eine Antwort in JSON zurück. Das funktioniert großartig. Jetzt hier ist, wo ich in Schwierigkeiten gerate. Ich empfange eine HttpEntity vom Server. Ich verwandle das dann in eine Saite, die so aussieht. {"Make":"Ford","Year": 1975, "Model":"Mustang"} Ich möchte diese Zeichenfolge an meine parseJSON(String jString) -Methode senden können und eine Schlüsselwertzuordnung zurückgeben. Wo ich denke, dass sich dies von anderen Posts unterscheidet, möchte ich, dass die Parse-Methode in der Lage ist, eine Schlüsselwert-Map für jede JSON-Zeichenkette zu erstellen, die ich sende. Also, wenn ich es {"Engine":"v8","Cylinders": 8, "Transmission":"Manual","Gears": 4} schickte, würde es immer noch funktionieren. Ist das machbar? Und wenn, könnten Sie mir ein paar Anstöße in die richtige Richtung geben?

    
Cristian 10.06.2011, 15:01
quelle

2 Antworten

20

In diesem Fall können Sie die Methode keys der Klasse JSONObject verwenden. Es gibt im Grunde eine Iterator der Schlüssel zurück, die Sie dann iterieren können, um die Werte in eine Karte zu bekommen und zu setzen:

%Vor%     
Cristian 10.06.2011, 15:13
quelle
1

Beachten Sie, dass Jackson eines der beiden JSON-Beispiele sehr einfach deserialisieren kann.

%Vor%

Gson kann es ähnlich machen, wenn Sie mit einem Map<String, String> statt mit einem% zufrieden sind. Code%. Zurzeit benötigt Gson eine benutzerdefinierte Deserialisierung für Map<String, Object> .

    
Programmer Bruce 10.06.2011 21:44
quelle

Tags und Links