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

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s