Gson – Serializando e Deserializando Atributos Com Nomes Diferentes dos Campos Json

by Katherine Akey / from beautifuldecay.com

Há um tempo atrás tive a necessidade de serializar e deserializar um atributo que a sua referência no Json tenha um nome diferente. Por exemplo, no Json há um campo “text” que gostaria que o seu valor fosse preenchido em meu atributo chamado “texto”. Isso não aconteceria normalmente já que o framework Gson relaciona campos e atributos com nomes iguais. A solução que encontrei foi através da anotação @Serialize. Vamos observar o json abaixo:


{
"arrayInteger": [
1,
2,
3
],
"boolean": true,
"nullObject": null,
"number": 123,
"text": "Hello World"
}

view raw

objeto.json

hosted with ❤ by GitHub

Note que ele é compatível com o objeto abaixo:


public class Objeto {
private int[] array;
private Boolean boolean;
private Object nullObject;
private String text;
}

view raw

Objeto.java

hosted with ❤ by GitHub

Mas deixaria de ser se o nosso atributo “text” passasse a se chamar “texto” por exemplo. Como seria a solução? Existe uma anotação chamada @Serialize(“NOME_DO_CAMPO”), onde passamos o nome do campo referente no Json, tanto para serialização quanto para deserialização. No caso, seria simplesmente isso:


public class Objeto {
private int[] array;
private Boolean boolean;
private Object nullObject;
@Serialize("text")
private String texto;
}

view raw

Objeto.java

hosted with ❤ by GitHub

6 comentários em “Gson – Serializando e Deserializando Atributos Com Nomes Diferentes dos Campos Json

Deixe um comentário