Leia o arquivo JSON em Java

Siddharth Swami 16 outubro 2021
Leia o arquivo JSON em Java

JavaScript Object Notation é uma linguagem leve e baseada em texto para armazenar e transferir dados. Objetos e matrizes são dois tipos de dados representados pelo arquivo JSON.

Este tutorial demonstra como ler um arquivo JSON em Java.

Para ler o arquivo JSON, usaremos a função FileReader() para iniciar um objeto FileReader e ler o arquivo JSON fornecido.

Em nosso exemplo, leremos o seguinte arquivo.

{
    "firstName": "Ram",
    "lastName": "Sharma",
    "age": 26
    },

    "phoneNumbers": [
        {
            "type": "home",
            "phone-number": "212 888-2365"
        }
    ] 
}

Para analisar o conteúdo deste arquivo, usaremos a biblioteca java json.simple. Precisamos importar duas classes da biblioteca java.simple, a classe org.json.simple.JSONArray e org.json.simple.JSONObject. O JSONArray nos ajuda a ler os elementos na forma de um array, e o JSONObject nos ajuda a ler os objetos presentes no texto JSON.

No código abaixo, lemos um arquivo JSON que já existe no sistema, e a partir dele iremos imprimir o nome e o sobrenome do arquivo.

Por exemplo,

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.*;

public class JSONsimple {
    public static void main(String[] args) throws Exception {
        // parsing file "JSONExample.json"
        Object ob = new JSONParser().parse(new FileReader("JSONFile.json"));

        // typecasting ob to JSONObject
        JSONObject js = (JSONObject) ob;

        String firstName = (String) js.get("firstName");
        String lastName = (String) js.get("lastName");

        System.out.println("First name is: " + firstName);
        System.out.println("Last name is: " +lastName);
    }
}

Produção:

First name is: Ram
Last name is: Sharma

Podemos ver o nome e o sobrenome que lemos do arquivo JSON no exemplo acima.

Aqui, usamos o JSONParser().parse() presente na classe org.json.simple.parser.* Em Java, que analisa o texto JSON do arquivo. O método js.get() obtém o nome e o sobrenome do arquivo.

Podemos analisar o conteúdo JSON usando métodos diferentes, mas o arquivo principal é lido usando FileReader().

Também podemos analisar JSON diretamente de strings. Existem outros métodos que também podem analisar as strings JSON.

O código a seguir demonstra o método org.json. Aqui estaremos copiando e colando o arquivo completo na string estática json. Em seguida, faremos um objeto que será usado na leitura do objeto JSON e do array do arquivo.

import org.json.JSONArray;
import org.json.JSONObject;

public class JSON2{
    static String json = "{\"contacDetails\": {\n" +   //JSON text in the file is written here
            "            \"firstName\": \"Ram\",\n" +
            "            \"lastName\": \"Sharma\"\n" +
            "    },\n" +
            "    \"phoneNumbers\": [\n" +
            "            {\n" +
            "                \"type\": \"home\",\n" +
            "                \"phone-number\": \"212 888-2365\",\n" +
            "            }\n" +
            "    ]" +
            "}";
    public static void main(String[] args) {
        
        //Make a object 
        JSONObject ob = new JSONObject(json);
        
        //getting first and last name
        String firstName = ob.getJSONObject("contacDetails").getString("firstName");
        String lastName = ob.getJSONObject("contacDetails").getString("lastName");
        System.out.println("FirstName "+firstName);
        System.out.println("LastName "+lastName);
        
        //loop for printing the array as phoneNumber is stored as array.
        JSONArray arr = obj.getJSONArray("phoneNumbers");
        for (int i = 0; i < arr.length(); i++) {
            String post_id = arr.getJSONObject(i).getString("phone-number");
            System.out.println(post_id);
        }
    }
}

Produção:

FirstName Ram
LastName Sharma
212 888-2365

Artigo relacionado - Java JSON