2011-01-13 29 views
28

¿Cómo creo un objeto json utilizando Google Gson? El siguiente código crea un objeto JSON que se parece a {"name":"john"}Creación del objeto GSON

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

¿Cómo se crea un objeto JSON como éste?

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

¿Estás hablando de [Gson] (http://code.google.com/p/google-gson/)? –

+0

sí. Estoy hablando de Gson. – Raunak

+0

¿Cambiar el título? –

Respuesta

14

Descubrí cómo hacerlo correctamente utilizando objetos Java.

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

Implementación de Creator java class.

public class Creator { 

    protected String name; 

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

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

Solo para agregar algo de flexibilidad, aconsejaría usar la interfaz de Map en lugar de usar directamente la implementación de HashMap. – Davio

+4

¿Cuál es el punto del campo de nombre? Nunca está establecido. –

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


Sólo un FYI: Gson está hecho para convertir objetos Java a/de JSON. Si esta es la forma principal en que estás usando Gson, creo que te estás perdiendo el sentido.

+0

Hmmh. Gracias; no estoy seguro de si es un error menor en el formateador de comentarios de SO ... de todos modos, para deshacerse del paréntesis final, el enlace es: http://cowtowncoder.com/blog/archives/2009/01/entry_131.html – StaxMan

+0

oh Ok. Pensé que puedes usar a Gson para todo. Gracias por la info. – Raunak

+1

@Raunak: seguro, puedes usarlo para eso, pero como dije, te estás perdiendo el sentido. Comience con objetos Java. –