2017-08-04 2 views
0

Ich habe eine Java-Zeichenfolge, die ein JSON-Objekt enthält, und ich weiß nicht, wie Sie dieses JSON-Objekt daraus erhalten?String zu Array Java zu Json-Objekt

Meine Zeichenfolge ist wie folgt:

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]"; 

Wie kann ich das JSON-Objekt aus diesem String bekommen?

+0

Verwenden Sie gson.jar oder json.jar. Sie haben Konstruktoren für JsonObject, in denen Sie einen String übergeben können. [Hier ist der Link] (https://repo1.maven.org/maven2/com/google/code/gson/gson/2.6.2/) – Amit1011

+0

Please diese Antwort https://stackoverflow.com/questions/ 5128442/how-to-convert-ein-string-zu-jsonobject-using-gson-library –

Antwort

0

Ich würde einfache einfache org.json Bibliothek empfehlen. Übergeben Sie die Zeichenfolge in JSONArray und dann erhalten Sie die JSONObject. Zum Beispiel so etwas wie unten:

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]"; 
JSONArray js = new JSONArray(myString); 
System.out.println(js); 
JSONObject obj = new JSONObject(js.getString(1)); 
System.out.println(obj); 

Ausgang:

  • [1, "{\" Status \ ": 0, \" InstanceNumber \ ": 9}"]
  • { "Status": 0, "InstanceNumber": 9}

herunterladen jar: http://mvnrepository.com/artifact/org.json/json

1

Sicher, dass Sie eine Bibliothek verwenden müssen Jackson oder Gson.

Ich arbeite meistens mit gson, wenn ich nicht komplizierte Sachen habe. Also hier die Ausgabe von dem, was Sie verlangen. Ich nehme an, dass Sie nicht den Typ haben, in den Sie konvertieren möchten (dafür nehme ich Object). Hier

ist der Code:

import com.google.gson.Gson; 

public class Json { 

    public static void main(String[] args) { 
     Gson g = new Gson(); 
     String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]"; 
     Object p = g.fromJson(myString, Object.class); 
     System.out.println(p.toString()); 
    } 

} 

Und hier ist die Ausgabe:

run: 
[1.0, {"Status":0,"InstanceNumber":9}] 
BUILD SUCCESSFUL (total time: 0 seconds) 

Sie wollen können das Ausgangsobjekt zu manipulieren, wie Sie wollen (ich es einfach ausgedruckt). HINWEIS: Vergessen Sie nicht, gson Jar zu Ihrem Klassenpfad hinzuzufügen.

+1

genagelt, Ausgezeichnet – sForSujit

0

Sie können jedes Json-Mapping-Framework verwenden, um das Objekt String in Java zu deserialisieren. Im Folgenden Beispiel zeigt, wie es mit Jackson zu tun:

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]"; 
ObjectMapper mapper = new ObjectMapper(); 
List<Object> value = mapper.readValue(myString, new TypeReference<List<Object>>() {}); 
Map<String, Object> map = mapper.readValue(value.get(1).toString(), new TypeReference<Map<String, Object>>() {}); 
System.out.println(map); 

Here's die Dokumentation.