DEV Community

loading...

Como ler um arquivo JSON no Java

Paulo Collares
Originally published at paulocollares.com.br on ・2 min read

Forma muito simples de se ler um arquivo JSON no Java e transformar em um objeto, muito útil para criar arquivos de configuração para seu sistema.

Dependências

A única dependência será o Gson, para a conversão do JSON para objetos Java.

Código

Vamos criar um arquivo chamado config.json na raiz do nosso projeto, ele irá conter o JSON que será lido.

{
    "nome": "paulo",
    "idade": 31,
    "lista": ["Item 1", "Item 2", "Item 3"],
    "cidade":{
        "nome":"Rio de janeiro",
        "estado": "RJ"
    }
}

Vamos criar um arquivo Cidade.java para encapsular esse objeto. Servirá para demonstrar a capacidade de trabalharmos com objetos dentro do arquivo JSON.

public class Cidade {

    private String nome;
    private String estado;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }
}

E vamos criar também um arquivo Config.java, para receber o conteúdo principal do arquivo.

public class Config {

    private String nome;
    private int idade;
    private List<String> lista;
    private Cidade cidade;

    public Config() {
        cidade = new Cidade();
        lista = new ArrayList<>();
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public List<String> getLista() {
        return lista;
    }

    public void setLista(List<String> lista) {
        this.lista = lista;
    }

    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

}

Por fim, em nossa classe main, vamos realizar a leitura do arquivo e guardar em uma String o seu conteúdo:

String json
                = String.join(" ",
                        Files.readAllLines(
                                Paths.get("./config.json"),
                                StandardCharsets.UTF_8)
                );

Logo em seguida, desserializamos o conteúdo em um novo objeto Config, usando o método fromJson do Gson:

Config config = new Gson().fromJson(json, Config.class);

A classe completa ficará assim:

public class Main {

    public static void main(String[] args) throws IOException {

        String json
                = String.join(" ",
                        Files.readAllLines(
                                Paths.get("./config.json"),
                                StandardCharsets.UTF_8)
                );

        Config config = new Gson().fromJson(json, Config.class);

        System.out.println(config.getNome());
        System.out.println(config.getIdade());
        System.out.println(config.getLista());
        System.out.println("");
        System.out.println(config.getCidade().getNome());
        System.out.println(config.getCidade().getEstado());

    }
}

Saída da execução dessa aplicação:

paulo
31
[Item 1, Item 2, Item 3]

Rio de janeiro
RJ

[]’s

Discussion (0)