Leer archivo JSON en Java
La notación de objetos de JavaScript es un lenguaje ligero y basado en texto para almacenar y transferir datos. Los objetos y los arrays son dos tipos de datos representados por el archivo JSON.
Este tutorial demuestra cómo leer un archivo JSON en Java.
Para leer el archivo JSON, usaremos la función FileReader()
para iniciar un objeto FileReader
y leer el archivo JSON dado.
En nuestro ejemplo, leeremos el siguiente archivo.
{
"firstName": "Ram",
"lastName": "Sharma",
"age": 26
},
"phoneNumbers": [
{
"type": "home",
"phone-number": "212 888-2365"
}
]
}
Para analizar el contenido de este archivo, usaremos la biblioteca java json.simple
. Necesitamos importar dos clases de la biblioteca java.simple
, la clase org.json.simple.JSONArray
y org.json.simple.JSONObject
. El JSONArray
nos ayuda a leer elementos en forma de array, y el JSONObject
nos ayuda a leer los objetos presentes en el texto JSON.
En el siguiente código, hemos leído un archivo JSON que ya está en el sistema y, a partir de ahí, imprimiremos el nombre y apellido del archivo.
Por ejemplo,
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);
}
}
Producción :
First name is: Ram
Last name is: Sharma
Podemos ver el nombre y apellido que hemos leído del archivo JSON en el ejemplo anterior.
Aquí hemos utilizado el JSONParser().parse()
presente en la clase org.json.simple.parser.*
En Java, que analiza el texto JSON del archivo. El método js.get()
aquí obtiene el nombre y apellido del archivo.
Podemos analizar el contenido JSON usando diferentes métodos, pero el archivo principal se lee usando el FileReader()
.
También podemos analizar JSON directamente desde cadenas. También hay otros métodos que pueden analizar las cadenas JSON.
El siguiente código demuestra el método org.json
. Aquí copiaremos y pegaremos el archivo completo en la cadena estática json
. Luego crearemos un objeto que luego se usará para leer el objeto JSON y el array del archivo.
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);
}
}
}
Producción :
FirstName Ram
LastName Sharma
212 888-2365