2011-01-13 3 views
28

Wie erstelle ich ein Json-Objekt mit Google Gson? Der folgende Code erstellt ein JSON-Objekt, dasGSON-Objekt erstellen

JsonObject jsonObject = new JsonObject(); 
jsonObject.addProperty("name", "john"); 

wie {"name":"john"} aussieht Wie kann ich ein JSON-Objekt wie diese erstellen?

{"publisher":{"name":"john"}} 
+0

Sprechen Sie über [Gson] (http://code.google.com/p/google-gson/)? –

+0

ja. Ich nehme Gson. – Raunak

+0

Ändern Sie den Titel dann? –

Antwort

14

Es wurde herausgefunden, wie es richtig mit Java-Objekten zu tun.

Creator creator = new Creator("John"); 
new Gson().toJson(creator); 

Implementierung von Creator Java-Klasse.

public class Creator { 

    protected String name; 

    protected HashMap<String, String> publisher = new HashMap<String, String>(); 

    public Creator(String name){ 
      publisher.put("name", name); 
    } 
} 
+0

Um die Flexibilität zu erhöhen, würde ich die Verwendung der Map-Schnittstelle empfehlen, anstatt die HashMap-Implementierung direkt zu verwenden. – Davio

+4

Was ist der Sinn des Namensfeldes? Es ist nie eingestellt. –

59
JsonObject innerObject = new JsonObject(); 
innerObject.addProperty("name", "john"); 

JsonObject jsonObject = new JsonObject(); 
jsonObject.add("publisher", innerObject); 

http://www.javadoc.io/doc/com.google.code.gson/gson


Just an FYI: Gson wirklich für die Umwandlung von Java gemacht Objekte zu/von JSON. Wenn dies der Hauptweg für die Verwendung von Gson ist, dann vermisse ich den Punkt.

+0

Hmmh. Vielen Dank; nicht sicher, ob es ein kleiner Fehler in SO Kommentarformatierer ist ... wie auch immer, um die nachlaufende Klammer loszuwerden, Link ist: http://cowtowncoder.com/blog/archives/2009/01/entry_131.html – StaxMan

+0

oh Ok. Ich dachte, du kannst Gson für alles benutzen. Danke für die Information. – Raunak

+1

@Raunak: Sicher, du kannst es dafür benutzen - aber wie ich schon sagte, du verpasst den Punkt. Beginnen Sie mit Java-Objekten. –

Verwandte Themen