Ich arbeite an einer Android-Anwendung. In meiner App muss ich eine Zeichenfolge in Json Object konvertieren und dann die Werte analysieren. Ich habe nach einer Lösung in Stackoverflow und fand ähnliche Frage hier Link
Die Lösung ist wie folgt
`{"phonetype":"N95","cat":"WP"}`
JSONObject jsonObj = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
Ich benutze den gleichen Weg in meinem Code. Mein String ist
{"ApiInfo":{"description":"userDetails","status":"success"},"userDetails":{"Name":"somename","userName":"value"},"pendingPushDetails":[]}
string mystring= mystring.replace("\"", "\\\"");
Und nach dem Ersetzen habe ich das Ergebnis wie folgt erhalten
{\"ApiInfo\":{\"description\":\"userDetails\",\"status\":\"success\"},\"userDetails\":{\"Name\":\"Sarath Babu\",\"userName\":\"sarath.babu.sarath babu\",\"Token\":\"ZIhvXsZlKCNL6Xj9OPIOOz3FlGta9g\",\"userId\":\"118\"},\"pendingPushDetails\":[]}
wenn ich ausführe JSONObject jsonObj = new JSONObject(mybizData);
Ich erhalte die folgende JSON-Ausnahme
org.json.JSONException: Expected literal value at character 1 of
Bitte helfen Sie mir, mein Problem zu lösen.
Antworten:
Entfernen Sie die Schrägstriche:
quelle
JSONArray obj = new JSONArray(json);
. Anschließend können Sie eine for-Schleife verwenden , um das Array zu durchlaufen.{"Fat cat":"meow"}
.es ist Arbeit
quelle
Versuche dies:
quelle
Um ein JSONObject oder JSONArray aus einem String abzurufen, habe ich diese Klasse erstellt:
Hier, um den JSON zu erhalten:
Beispiel:
quelle
[
oder{
zu wissen , ob es ein Array oder ein Objekt. Dann würden Sie nicht beide Ausnahmen riskieren, nur die relevante.Probieren Sie es einfach aus, endlich funktioniert das für mich:
quelle
Sie benötigen nur die folgenden Codezeilen:
quelle
Hier ist der Code, und Sie können entscheiden, welcher
(synchronisierte) StringBuffer oder schnellere StringBuilder verwendet werden soll.
Der Benchmark zeigt, dass StringBuilder schneller ist.
quelle
Vielleicht ist unten besser.
quelle