Como ler um arquivo JSON no Java
Tags: java, ptbr, json
Published: 2019-12-18 17:07:26

---
title: Como ler um arquivo JSON no Java
published: true
date: 2019-06-18 19:23:10 UTC
tags: java,ptbr,json
canonical_url: https://www.paulocollares.com.br/programacao/como-ler-um-arquivo-json-no-java/
---

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