Leitura e Escrita de arquivos JSON em Java

Veja neste artigo como ler e escrever em arquivos JSON utilizando poucas linhas de código na linguagem Java.

Olá, pessoal. Nesse artigo iremos aprender como o Java nos permite fazer a leitura e a escrita em um arquivo do tipo JSON. Porém, antes de começarmos de fato a parte prática, precisamos saber: O que é JSON?

JSON (Java Script Object Notation) é um formato de representação de dados, assim como o XML, de fácil entendimento para seres humanos e que máquinas conseguem gerar e interpretar facilmente. Esse tipo de arquivo é utilizado para representar objetos, simples ou complexos. O tipo de arquivo JSON foi criado por Douglas Crockford e uma descrição completa desse formato pode ser encontrada na RFC 4627 (http://tools.ietf.org/html/rfc4627).

Muitas APIs, software e etc, geram arquivos JSON pela simplicidade de interpretação e de criação, então nada mais interessante do que saber como fazer a leitura e a criação de um arquivo do tipo JSON. Primeiramente, será necessária uma API chamada JSON.simple, que pode ser baixada no seguinte web site: http://code.google.com/p/json-simple/. Essa API é bem pequena e provê muitas funcionalidades, sendo compatível com o padrão RFC 4627.

Primeiramente vamos levar em conta o seguinte arquivo JSON:

Listagem 1: Exemplo de código JSON

{"sobrenome":"Romanato","estado":"SP","nome":"Allan","pais":"Brasil"}

Tomando o arquivo JSON mostrado acima, vamos criar nossa classe Java que irá criar esse arquivo.

Antes de tudo, temos que ter a biblioteca JSON.simple instalada no build path, conforme a figura abaixo:


Figura 1: Instalar Biblioteca

Com a biblioteca devidamente instalada, será agora montada a classe que irá criar esse arquivo JSON.

Essa classe irá importar as seguintes classes:

O código é simples, ele cria um objeto JSON, popula o objeto com as informações e gera uma saída “saida.json”.

Listagem 2: Gerando o arquivo JSON

package br.com; //Classes necessárias import java.io.FileWriter; import java.io.IOException; import org.json.simple.JSONObject; public class JSONWrite { @SuppressWarnings("unchecked") public static void main(String[] args) { //Cria um Objeto JSON JSONObject jsonObject = new JSONObject(); FileWriter writeFile = null; //Armazena dados em um Objeto JSON jsonObject.put("nome", "Allan"); jsonObject.put("sobrenome", "Romanato"); jsonObject.put("pais", "Brasil"); jsonObject.put("estado", "SP"); try{ writeFile = new FileWriter("saida.json"); //Escreve no arquivo conteudo do Objeto JSON writeFile.write(jsonObject.toJSONString()); writeFile.close(); } catch(IOException e){ e.printStackTrace(); } //Imprimne na Tela o Objeto JSON para vizualização System.out.println(jsonObject); } }

O arquivo gerado estará armazenado na pasta do projeto, se quiser mudar o local onde o arquivo é armazenado, é só mudar o caminho na declaração writeFile = new FileWriter("saida.json").

Como já prevista, a saída será:

Listagem 3: Conteúdo do arquivo saída.json

{"sobrenome":"Romanato","estado":"SP","nome":"Allan","pais":"Brasil"}

Agora que foi criado o arquivo JSON e populado com informações, como se pode fazer para ler?

A resposta é bem simples: temos que importar a classe JSONParser e criar um objeto desse tipo. Mas por quê? Porque o JSONParse é responsável por trazer o arquivo do tipo JSON e salva-lo corretamente no objeto do tipo JSONObject.

Agora será criada a classe que irá ler o arquivo, essa classe possui as seguintes dependências:

Como o código de escrita em arquivo, o de leitura é simples, mas contendo algumas informações a mais, pois tem-se que colocar tudo que será lido, e como é conhecida a estrutura desse arquivo criada, fica fácil a execução de sua leitura.

Listagem 4: Lendo o arquivo JSON

package br.com; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class JSONRead { public static void main(String[] args) { JSONObject jsonObject; //Cria o parse de tratamento JSONParser parser = new JSONParser(); //Variaveis que irao armazenar os dados do arquivo JSON String nome; String sobrenome; String estado; String pais; try { //Salva no objeto JSONObject o que o parse tratou do arquivo jsonObject = (JSONObject) parser.parse(new FileReader( "saida.json")); //Salva nas variaveis os dados retirados do arquivo nome = (String) jsonObject.get("nome"); sobrenome = (String) jsonObject.get("sobrenome"); estado = (String) jsonObject.get("estado"); pais = (String) jsonObject.get("pais"); System.out.printf( "Nome: %s\nSobrenome: %s\nEstado: %s\nPais: %s\n", nome, sobrenome, estado, pais); } //Trata as exceptions que podem ser lançadas no decorrer do processo catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

A saída no console será a seguinte:

Listagem 5: Resultado da leitura do arquivo exibido no console

Nome: Allan Sobrenome: Romanato Estado: SP Pais: Brasil

Com isso pode-se perceber que a leitura e escrita em arquivos JSON é simples e de fácil acesso para todos os programadores. Pode-se fazer diversas operações com essas saídas como, por exemplo, criar arquivos JSON a partir de consultas em bancos de dados, e esse JSON pode ser lido por uma rotina DOJO na web para poupar a sobrecarga de acessos ao banco de dados quando um web site é aberto. Existem, além dessas, muitas outras aplicações para arquivos JSON, nesse artigo foi coberto o básico de geração e interpretação. Espero que gostem dessa tecnologia e a utilizem.

Abraço e até a próxima publicação.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados