Gestion des tableaux JSON en Java

Mohd Mohtashim Nawaz 12 octobre 2023
  1. Gestion des tableaux JSON en Java
  2. Objets JSON et tableaux JSON en Java
  3. Utiliser les bibliothèques intégrées de Java pour lire un tableau JSON en Java
  4. Conclusion
Gestion des tableaux JSON en Java

JSON est un format d’échange de données populaire et largement utilisé parmi les développeurs et les organisations. Le terme JSON signifie JavaScript Object Notation.

Il s’agit d’un cadre léger, lisible et basé sur du texte spécialement conçu pour faciliter l’échange de données dans un format lisible par l’homme. JSON est un format standard ouvert, ce qui signifie qu’il peut être utilisé n’importe où sans exigences particulières.

De plus, JSON est pris en charge par la plupart des langages de programmation. Vous avez peut-être rencontré JSON si vous avez déjà travaillé en tant que développeur de projet nécessitant un échange de données.

Par exemple, nous utilisons souvent des objets JSON pour transférer des données d’un serveur vers une application mobile et vice versa. Cet article comprendra les bases de JSON, telles que la structure de JSON, les types de données, les objets JSON, les tableaux JSON, etc.

Nous comprendrons également comment travailler avec JSON en Java. Au final, cet article fournit un exemple de code pour gérer JSON en Java.

Gestion des tableaux JSON en Java

JSON est un cadre de partage d’informations très flexible et léger dans lequel nous utilisons des objets et des types de données pour créer et partager des informations.

Dans JSON, les données sont représentées sous forme de paires clé-valeur où la clé est spécifiquement une chaîne, tandis que la valeur peut être n’importe quel type de données pris en charge par JSON.

JSON prend en charge les types de données suivants.

  1. Chaîne
  2. Numéro
  3. Booléen
  4. Nul

En plus de ces types de données JSON de base, nous pouvons également utiliser des tableaux JSON et des objets JSON comme valeur dans une paire clé-valeur.

De plus, dans l’article, nous étudierons plus en détail les tableaux et les objets. Mais avant cela, regardons les fonctionnalités de JSON.

Certaines des fonctionnalités exceptionnelles de JSON sont les suivantes.

  1. JSON est très simple. Vous n’avez pas à faire d’effort supplémentaire pour comprendre et utiliser JSON.
  2. JSON est facilement compréhensible et auto-descriptif. En regardant un objet JSON, vous pouvez facilement comprendre ce qu’il est censé transmettre.
  3. JSON est indépendant du langage. Cette fonctionnalité s’est avérée être un facteur majeur dans la large acceptation de JSON. Nous pouvons travailler avec JSON dans presque toutes les langues à l’aide de bibliothèques et de codes simples.
  4. JSON est plus rapide que XML. C’est une autre raison de l’utiliser largement.

Objets JSON et tableaux JSON en Java

Avant d’apprendre à utiliser les objets et les tableaux JSON en Java, nous allons comprendre les objets JSON et les tableaux JSON.

Les objets JSON sont très similaires au type de données dictionnaire, où les données sont stockées sous forme de paires clé-valeur. La clé de cette paire clé-valeur doit être une chaîne, tandis que la valeur peut être un objet, un tableau ou tout autre type de données pris en charge.

Il faut séparer une clé et une valeur par deux points : et chaque couple clé-valeur par une virgule ,. Un objet JSON est représenté en utilisant des accolades {}.

Nous pouvons créer des objets JSON arbitrairement complexes en imbriquant des objets et des tableaux dans nos objets JSON. C’est ce qu’on appelle un objet JSON hiérarchique.

Voici un exemple d’objet JSON représentant les détails d’un étudiant.

{"name": "Roger", "Roll": 22, "Class": "XI"}

Notez que nous avons entre guillemets les valeurs de chaîne avec des virgules à double conversion, alors que les nombres n’ont pas besoin d’être entre guillemets.

Nous venons de parler des objets JSON qui s’apparentent à un dictionnaire. D’autre part, les tableaux JSON sont similaires aux listes.

On met les objets entre crochets [] dans une liste. Un tableau JSON peut contenir n’importe quel type de données pris en charge, y compris un autre tableau ou un objet JSON.

Voici un exemple de tableau JSON.

[1, "abc", {"name":"xyz"}]

Notez que le tableau JSON ci-dessus contient un nombre, une chaîne et un objet. Cela signifie que nous pouvons stocker différents types de données dans un tableau.

Utiliser les bibliothèques intégrées de Java pour lire un tableau JSON en Java

Java est un langage puissant avec un grand nombre de bibliothèques. Heureusement, nous avons des bibliothèques intégrées pour lire des objets et des tableaux JSON en Java.

De telles bibliothèques facilitent notre travail et simplifient l’analyse et la lecture d’objets et de tableaux JSON. Plus loin dans cet article, nous apprendrons à utiliser ces bibliothèques dans le code pour lire l’objet JSON et le tableau JSON en Java.

Avant de passer au code, nous créons un objet JSON et le stockons dans un fichier. Notez qu’un fichier JSON porte l’extension .json.

Donc, si vous voulez tester et exécuter le code, copiez et collez le code JSON suivant et enregistrez le fichier avec l’extension .json à l’emplacement souhaité. Le code JSON est donné ci-dessous.

[{
	"name":"MMN",
	"roll": 24,
	"marks": [91, 95, 97, 97, 94],
	"parents": {
	"name": "IMT",
	"mobile":"1234567890"
	},
	"hobbies": ["sports", "reading", "music"],
	"others": ["A", 1]
}]

Vous devez noter que ce fichier JSON contient un tableau JSON avec un seul objet JSON. Cet objet JSON interne contient alors plusieurs paires clé-valeur avec différents types de données.

Par exemple, name est une chaîne, roll est un entier (notez que JSON stocke les entiers sous forme d’entiers longs), marks est un tableau JSON, parents est un autre objet JSON, etc. Par conséquent, il s’agit d’un exemple de données JSON arbitrairement complexes.

Comprenons comment nous pouvons lire un tel objet JSON en utilisant Java.

Avant d’écrire le code, vous devez vous assurer que vous avez téléchargé le fichier jar JSON et ajouté la variable classpath pointant vers ce fichier JSON. Si vous ne le faites pas, JSON ne sera pas compilé.

Nous pouvons ouvrir un fichier JSON de la même manière que nous ouvrons n’importe quel autre fichier en Java, essentiellement en utilisant le constructeur File().

Nous devons entourer l’instruction d’ouverture de fichier d’un bloc try-catch pour gérer l’exception nécessaire que le constructeur lève.

Une fois le fichier ouvert, son objet est passé au constructeur FileReader().

Nous utilisons un analyseur JSON qui renvoie un objet Java pour analyser le contenu JSON. Nous devrions utiliser un cast explicite pour caster un tableau JSON.

Notre tableau JSON contient un seul objet, mais dans certains cas, nous pouvons avoir plusieurs objets JSON dans un tableau JSON, nous devons donc parcourir le tableau analysé à l’aide d’une boucle. Nous extrayons chaque objet JSON du tableau JSON analysé et le traitons ensuite.

Notez que nous devons connaître la structure de l’objet JSON que nous itérons car nous devons extraire les valeurs dans un objet JSON à l’aide de la clé.

De plus, nous extrayons les données de l’objet JSON en les transmettant à une fonction qui utilise des clés nommées. Étant donné que l’objet JSON contient différents types de données, chacun peut être géré en conséquence.

Par exemple, nous avons affiché l’entier, la chaîne et le tableau, mais avons itéré les parents de l’objet JSON imbriqué. Le code suivant implémente la logique expliquée.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JSONReader {
  public static void main(String[] args) {
    JSONParser parser = new JSONParser();
    FileReader fileReader;
    try {
      File file = new File("/home/stark/eclipse-workspace-java/Aditya/src/data.json");
      fileReader = new FileReader(file);
      // Parser returns an object, we need an explicit cast to covert it into a JSONArray
      JSONArray array = (JSONArray) parser.parse(fileReader);

      // Traverse the list
      for (int i = 0; i < array.size(); i++) {
        JSONObject obj = (JSONObject) array.get(i);
        parseObject(obj);
      }

    }

    catch (FileNotFoundException e) {
      System.out.println(e.getStackTrace() + " :File Not Found");
    } catch (ParseException e) {
      System.out.println(e.getStackTrace() + " :Could not parse");
    } catch (IOException e) {
      System.out.println(e.getStackTrace() + " :IOException");
    }
  }

  private static void parseObject(JSONObject obj) {
    String name = (String) obj.get("name");
    long roll = (long) obj.get("roll");
    JSONArray marks = (JSONArray) obj.get("marks");
    JSONArray hobbies = (JSONArray) obj.get("hobbies");
    JSONObject parents = (JSONObject) obj.get("parents");
    JSONArray others = (JSONArray) obj.get("others");

    System.out.println("Name: " + name);
    System.out.println("Roll: " + roll);
    System.out.println("Marks: " + marks);
    System.out.println("Hobbies: " + hobbies);
    System.out.println(
        "Parent's Name: " + parents.get("name") + ", Mobile: " + parents.get("mobile"));
    System.out.println("Others: " + others);
  }
}

Vous devez spécifier le chemin correct du fichier dans le constructeur File(). La sortie du code ci-dessus est ci-dessous.

Name: MMN
Roll: 24
Marks: [91,95,97,97,94]
Hobbies: ["sports","reading","music"]
Parent's Name: IMT, Mobile: 1234567890
Others: ["A",1]

Conclusion

Java est un langage de programmation populaire, et nous rencontrons souvent des situations où nous avons besoin d’échanger des données. Bien qu’il existe d’autres formats d’échange de données, JSON est l’un des formats les plus populaires, les plus simples et les plus compréhensibles.

Nous avons appris le format JSON, ses types de données et analysé les fichiers JSON en Java. JSON peut avoir une structure arbitrairement complexe qui nous permet d’échanger toutes les données JSON.

D’autre part, Java fournit une méthode simple, unique mais puissante pour gérer le JSON.

Article connexe - Java JSON