Lire le fichier JSON en Java
JavaScript Object Notation est un langage léger et basé sur du texte pour le stockage et le transfert de données. Les objets et les tableaux sont deux types de données représentés par le fichier JSON.
Ce tutoriel montre comment lire un fichier JSON en Java.
Pour lire le fichier JSON, nous utiliserons la fonction FileReader()
pour lancer un objet FileReader
et lire le fichier JSON donné.
Dans notre exemple, nous allons lire le fichier suivant.
{
"firstName": "Ram",
"lastName": "Sharma",
"age": 26
},
"phoneNumbers": [
{
"type": "home",
"phone-number": "212 888-2365"
}
]
}
Pour analyser le contenu de ce fichier, nous utiliserons la librairie java json.simple
. Nous devons importer deux classes de la bibliothèque java.simple
, les classes org.json.simple.JSONArray
et org.json.simple.JSONObject
. Le JSONArray
nous aide à lire les éléments sous forme de tableau, et le JSONObject
nous aide à lire les objets présents dans le texte JSON.
Dans le code ci-dessous, nous avons lu un fichier JSON qui est déjà présent sur le système, et à partir de là, nous imprimerons le prénom et le nom du fichier.
Par exemple,
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);
}
}
Production:
First name is: Ram
Last name is: Sharma
Nous pouvons voir le prénom et le nom que nous avons lus dans le fichier JSON dans l’exemple ci-dessus.
Ici, nous avons utilisé le JSONParser().parse()
présent dans la classe org.json.simple.parser.*
en Java, qui analyse le texte JSON du fichier. La méthode js.get()
obtient ici le prénom et le nom du fichier.
Nous pouvons analyser le contenu JSON en utilisant différentes méthodes, mais le fichier principal est lu à l’aide du FileReader()
.
Nous pouvons également analyser JSON directement à partir de chaînes. Il existe également d’autres méthodes qui peuvent analyser les chaînes JSON.
Le code ci-dessous illustre la méthode org.json
. Ici, nous allons copier et coller le fichier complet dans la chaîne statique json
. Ensuite, nous allons créer un objet qui sera ensuite utilisé pour lire l’objet et le tableau JSON à partir du fichier.
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);
}
}
}
Production:
FirstName Ram
LastName Sharma
212 888-2365