Java >> Tutoriel Java >  >> Tag >> Json

Comment analyser JSON en Java

Avant de nous pencher sur la façon d'analyser JSON en Java, commençons par comprendre brièvement ce qu'est JSON et ce qu'est java. Premièrement, Java est un langage de programmation orienté objet. Il peut être utilisé pour développer des applications de bureau, Android et Web. JSON est (Javascript Object Notation). Cela dépend d'un sous-ensemble de Javascript. JSON est indépendant du langage, basé sur du texte et léger. Il est utilisé par les humains et les machines pour lire et écrire; JSON est donc essentiel lors de la transmission de données sur le Web.

JSON peut avoir deux structures :
1. Objet - une collection de zéro ou plusieurs paires nom/valeur non ordonnées
2. Tableaux - une collection/séquence ordonnée de zéro ou de valeurs

Nous pouvons nous demander pourquoi avons-nous besoin de JSON ? D'accord, il y a plusieurs avantages à utiliser JSON. Tout d'abord, il est auto-descriptif. Ce qui le rend auto-descriptif, c'est sa structure hiérarchique qui rend son code facilement compréhensible sans trop de tracas. Deuxièmement, sa compacité en taille est excellente. Les fichiers volumineux en XML peuvent être minuscules lorsqu'ils sont convertis en JSON. Enfin, mais non des moindres, sa simplicité. Il est simple à afficher ou à modifier car il prend également en charge les outils JSON en ligne.

Nous pouvons analyser Json en Java en utilisant une variété de bibliothèques. Discutons des 3 bibliothèques les plus courantes à utiliser.

  1. org.json
  2. Gson
  3. CHEMIN JSON
  4. Jackson

Parser JSON en Java en utilisant org.json

Analysons ce JSON, c'est un exemple qui montre comment récupérer des valeurs pour name et post_id.

{
    "pageInfo": {
            "pageName": "Homepage",     
    },
    "posts": [
            {
                "post_id": "123456789",
                "author_name": "Moses Njoroge",
                "post_title": "How to parse JSON in Java",  
            }
    ]
}

Étapes :

Ajout de la bibliothèque en tant que dépendance. Vous pouvez télécharger la bibliothèque jar org.json à partir du référentiel Mvn.

Pour ajouter le fichier Jar à votre projet. Ouvrez le projet. Dans notre cas, nous allons utiliser l'IDE Netbeans. Sous le dossier Bibliothèques, cliquez avec le bouton droit sur Ajouter, choisissez Ajouter un fichier jar/fichier. Accédez à l'emplacement où se trouve le pot et cliquez sur OK.

Cela vous permettra d'utiliser les dépendances ci-dessous sans aucune erreur.

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

Convertissez la chaîne JSON en objet JSON à l'aide de la classe jsonobject.

JSONObject obj = new JSONObject(json);
String name = obj.getString("name");
int age = obj.getString("age");

Enfin, nous avons la méthode getJSONObject.

JSONArray arr = obj.getJSONArray("posts");
  for (int i = 0; i < arr.length(); i++) {
   String post_id = arr.getJSONObject(i).getString("post_id");
            System.out.println(post_id);
    }

Ci-dessous le code Java complet.

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

public class ParseJSONOrg {
    static String json = "";
    public static void main(String[] args) {
       JSONObject object = new JSONObject(json);
       String name = object.getString("name");
       
        System.out.println(name);

        JSONArray arr = object.getJSONArray("posts");
        for (int i = 0; i < arr.length(); i++) {
            String post_id = arr.getJSONObject(i).getString("post_id");
            System.out.println(post_id);
        }
    }
}

Parser JSON en Java à l'aide de GSON

Gson est basé sur une bibliothèque open-source développée par Google. Il est simple et facile à utiliser, ce qui lui donne un avantage sur les autres méthodes. Comme il est développé et maintenu par Google, ses performances sont meilleures. Téléchargez le fichier jar GSON à partir du référentiel Marven.

Les dépendances GSON ajoutées incluent :

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

Je vais montrer comment convertir une chaîne JSON en objet JSON en utilisant deux types de données qui sont un entier et une chaîne. Pour convertir la chaîne JSON, écrivez :

Gson gson = new Gson();
User p = gson.fromJson(jsonString, User.class);

Où JSON est la chaîne JSON et User.class est la classe de modèle représentant la classe d'objet Java. De même, la conversion de l'objet JSON en chaîne JSON est également simple. Écrivez simplement le code ci-dessous :

Gson gson = new Gson();
String str = gson.toJson(json);

Entrée :

JSON String : {
  "name": "mose",
  "enail": "[email protected]",
  "phone": 123456789}

Sortie :

Java Object : User [name=Mose, [email protected], phone=12345670]
package ParseJSON;

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ParseJSONGson 
{
    static String json = " ";
    public static void main(String[] args) 
    {
      JsonObject gson = new JsonParser().parse(json).getAsJsonObject();

        String name = gson.toJson(json);
        System.out.println(name);

        JsonArray arr = gson.getAsJsonArray("posts");
        for (int i = 0; i < arr.size(); i++) {
            String post_id = arr.get(i).getAsJsonObject().get("post_id").getAsString();
            System.out.println(post_id);
        } 
  } 
}

Analyse de la chaîne en JSON à l'aide de Jackson en Java

Jackson Library est l'un des convertisseurs JSON les plus utilisés en raison de sa vitesse rapide. Il peut prendre en charge l'analyse de données JSON volumineuses telles que celles utilisées dans le streaming. Par conséquent, cette bibliothèque est compatible avec la mémoire. Malgré son efficacité, il ne prend en charge que JDK 1.5 et supérieur et ne prend pas non plus en charge les projets J2ME. Par conséquent, il convient au développement de grands projets en développant des services Web et des projets Android car il est léger.

La première étape consiste à ajouter la dépendance dans votre POM.xml. Ajoutez simplement la dépendance dans le fichier pom.xml, comme indiqué ci-dessous. Si vous utilisez IntelliJ IDEA, sélectionnez simplement la structure du projet dans le menu Fichier. Sélectionnez la bibliothèque, puis cliquez sur le bouton plus et recherchez Jackson-xc.

<dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-xc</artifactId>
      <version>1.9.11</version>
</dependency>

Je vais utiliser la bibliothèque Jackson comme convertisseur de chaîne JSON en objet JSON et vice versa.

User mose = new ObjectMapper().readValue(json, User.class);

Le code ci-dessous convertit la chaîne JSON en objet JSON.

Driver converter = new Driver();
String json = "{\n" +
       "    \"name\": \"Mose\",\n" +
       "    \"email\": \"[email protected]\",\n" +
       "    \"phone\": 12345670}";
converter.fromJson(json);

Sortie

Java Object : User [name=Mose, [email protected], phone=12345670]

Pour analyser l'objet JSON en chaîne JSON, utilisez simplement le code ci-dessous

//Object to JSON in String
ObjectMapper mapper = new ObjectMapper();
String jsonInString = mapper.writeValueAsString(user);

Analyse de la chaîne en JSON à l'aide de JSON-Simple en Java

Cette bibliothèque est open source. Il est petit aussi et utilise une petite mémoire par rapport aux autres bibliothèques. Il est donc couramment utilisé dans les projets Android et J2ME. L'un de ses meilleurs avantages est qu'il peut prendre en charge de très anciens projets antérieurs à JDK 1.2. Il est simple d'écrire le code et de l'utiliser en même temps.

Tout comme les étapes ci-dessus, il est crucial de commencer par ajouter la dépendance JSON avant de commencer à l'utiliser. Comme décrit dans la chaîne d'analyse de l'objet JSON à l'aide de Gson, suivez la même procédure et ajoutez cette dépendance. Ou téléchargez-le et ajoutez le JAR au projet comme d'habitude, puis vous êtes prêt à partir.

Pour analyser la chaîne JSON en objet JSON, utilisez simplement le code ci-dessous :

JSONParser parser = new JSONParser();
JSONObject json = (User.class) parser.parse(jsonString);

Ici, jsonString est la chaîne JSON que vous devez analyser.

Étant donné la même entrée que dans le même exemple ci-dessus, la sortie est toujours la même.

Parser JSON en Java à l'aide de JsonPATH

Cette méthode inclut l'utilisation d'un XPath pour SON, qui est JsonPATH. Encore une fois, vous devez télécharger sa dépendance - Maven Repository. Voyons maintenant comment transmettre le JSONPath.

Dépendance :

import com.jayway.jsonpath.JsonPath;
import com.jayway.jsonpath.JsonPath;

public class ParseJSONPath {
    static String json = " ";
    public static void main(String[] args) {
        String name = JsonPath.read(json, "$.pageInfo.name");
        System.out.println(pagenameame);

        Integer posts = JsonPath.read(json, "$.posts.length()");

        for(int i=0; i < posts; i++) {
            String post_id = JsonPath.read(json, "$.posts[" + i + "].post_id");
            System.out.println(post_id);
        }
    }
}

Conclusion

D'après la discussion ci-dessus, il est évident qu'il existe différentes façons d'analyser JSON en Java. Nous avons vu certains avantages à utiliser une méthode plutôt qu'une autre. La bibliothèque Jackson est la meilleure de toutes et peut être considérée comme la meilleure car elle est principalement utilisée dans les codes de production en raison de sa simplicité et de son efficacité mémoire, et elle peut analyser d'énormes quantités de données. Cette propriété lui donne un avantage dans la création de services Web par rapport aux autres bibliothèques. La bibliothèque JSON s'avère également efficace en mémoire et largement supportée. Enfin, toutes les méthodes peuvent faire le travail. Cela dépend uniquement de vos besoins en tant que développeur ou organisation.


Balise Java