Para um exemplo sobre uso de JSON com Android, veja esse artigo |
API padrão do Java para JSON
O Java, por muitos anos, não tinha um padrão para a conversão de JSON, isso mudou com a JSR 353, que nos trouxe o JSON-P (JSON Processing).
Nessa especificação temos uma nova API para realizar transformação de JSON que é baseada em manipular a estrutura do JSON usando Java. Ou seja, não é uma API de binding, como mostrados para XML(onde podemos fazer a correspondência de um objeto Java para JSON ! Para isso temos a JSON-B(JSON binding), que ainda está em discussão e fará parte do Java EE 8, por enquanto podemos usar a API Jackson.
A API JSON Processing
Para utilizarmos JSON-P, temos que conhecer algumas classes importantes. Veja a tabela traduzida dessa página:
Principais classes e interfaces do pacote javax.json
Classe ou Interface | Descrição |
---|---|
Json |
Contém métodos especifícicos para criar instâncias de parsers JSON, builders e fábricas para criar objetos.
|
JsonReader |
Lê JSON de um Stream e cria objetos de modelo em memória. (objetos de modelo que representam o JSON)
|
JsonObjectBuilder JsonArrayBuilder |
Cria um modelo de objeto ou um modelo de array na memória adicionando elementos da aplicação.
|
JsonWriter |
Escreve um objeto da memória para um Stream.
|
JsonValue |
Representa um elemento (como um objeto, um array ou um valor) em dados no formato JSON.
|
JsonStructure |
Representa um objeto ou um array no formato JSON. É um subtipo do JsonValue.
|
JsonObject JsonArray |
Representa um objeto ou um array no tipo JSON.Essas interfaces são subtipos de
JsonStructure . |
JsonString JsonNumber |
Representam tipos de dados em JSON. Essas interfaces são subtipos de
JsonValue . |
JsonException |
Indicate que houve um error no processamento do JSON.
|
Principais classes e interfaces do pacto javax.json.stream
Classe ou interface | Descrição |
---|---|
JsonParser |
Representa um parser baseado em JSON que pode ler dados JSON de um Stream ou de um objeto de modelo.
|
JsonGenerator |
Escreve JSON para um Stream, um elemento por vez.
|
Se você leu ali em cima,vamos ao código para "digerir" a informação.
Uma aplicação de exemplo
Vamos utilizar o mesmo objeto do post passado, o Artigo. Como iremos usar maven, precisamos adicionar a API e a implementação. Abaixo você pode ver o código Java e o JSON usado. O método javaParaJson gera o JSON a partir de uma lista de artigos e o mesmo JSON gerado será lido no métódo jsonParaJava devidamente comentados.
Conclusão
Apresentamos JSON-P e falamos da conversão JSON para Java e vice versa. Embora Java ainda não tenha uma forma nativa de lidar com JSON, a API JSON-P é simples de ser usada e a nova API JSON-B promete a mesma facilidade do JAXB para JSON.
O projeto maven usado nessa postagem está on github!
Nenhum comentário:
Postar um comentário