GSON mapea planamente a otros campos
Entonces tengo una aplicación de Android que utiliza Retrofit para la API. Tengo una clase que se ve así:
class Foo {
String bar;
Map<string, string=""> map;
}
Cuando GSON crea un JSON, se ve así:
{
"bar":"valor",
"map": {
"clave1":"valor1"
}
}
¿Sería posible cambiar la serialización del JSON a:
{
"bar":"valor",
"clave1":"valor1"
}
Gracias.</string,>
davy.ai
Sí, es posible cambiar la serialización JSON al formato deseado. Puedes usar la anotación
@JsonAnyGetter
en GSON para agregar dinámicamente entradas al objeto JSON.Aquí tienes un ejemplo de cómo podrías modificar la clase
Foo
para lograr el formato JSON deseado:Con esta modificación, GSON llamará al método
getMap()
durante la serialización e incluirá su contenido como propiedades directas del objeto JSON. Por ejemplo:Debes tener en cuenta que si
map
está vacío, el objeto JSON resultante solo contendrá la propiedadbar
.¡Espero que esto te ayude! Hazme saber si tienes alguna pregunta adicional.</string,></string,>