usar tutorial partir libreria leer example deserializar crear como cadena java json serialization gson

tutorial - leer cadena json java



Serialización de objetos a JSON(usando Gson). ¿Cómo establecer nombres de campo en UpperCamelCase? (1)

Tomado de los documentos:

Gson admite algunas políticas de nombres de campo predefinidos para convertir los nombres de campo estándar de Java (es decir, nombres de camello que comienzan con minúsculas --- "nombre de campo de muestraInJava") a un nombre de campo de Json (es decir, nombre_de_campo_de_muestra_en_java o nombre_de_campo_de_muestrasenJava). Consulte la clase FieldNamingPolicy para obtener información sobre las políticas de nomenclatura predefinidas.

También tiene una estrategia basada en anotaciones que permite a los clientes definir nombres personalizados por campo. Tenga en cuenta que la estrategia basada en anotaciones tiene validación de nombre de campo que generará excepciones de "Runtime" si se proporciona un nombre de campo no válido como valor de anotación.

El siguiente es un ejemplo de cómo usar ambas características de la política de nombres de Gson:

private class SomeObject { @SerializedName("custom_naming") private final String someField; private final String someOtherField; public SomeObject(String a, String b) { this.someField = a; this.someOtherField = b; } } SomeObject someObject = new SomeObject("first", "second"); Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create(); String jsonRepresentation = gson.toJson(someObject); System.out.println(jsonRepresentation);

======== SALIDA ========

{"custom_naming":"first","SomeOtherField":"second"}

Sin embargo, para lo que quieras, puedes usar esto:

Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();

Al usar la opción UPPER_CAMEL_CASE, alcanzará su objetivo.

Necesito serializar una lista de objetos Java simples a JSON usando la biblioteca Google Gson.

El objeto:

public class SimpleNode { private String imageIndex; private String text; public String getImageIndex() { return imageIndex; } public void setImageIndex(String imageIndex) { this.imageIndex = imageIndex; } public String getText() { return text; } public void setText(String text) { this.text = text; } }

He escrito el siguiente código para la serialización:

List<SimpleNode> testNodes = repository.getElements(0); Gson gson = new Gson(); String jsonNodesAsString = gson.toJson(testNodes);

Funciona, pero el nombre de campo de los objetos JSON es lowerCamelCase. Me gusta esto:

[ { "imageIndex": "1", "text": "Text 1" }, { "imageIndex": "2", "text": "Text 2" } ]

¿Cómo obtengo un nombre de campo JSON con UpperCamelCase, como este?

[ { "ImageIndex": "1", "Text": "Text 1" }, { "ImageIndex": "2", "Text": "Text 2" } ]

Creo que puedo cambiar el nombre de las variables de miembro en UpperCamelCase, pero puede haber otra forma.