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