Gson - Modèle d'arbre
Le modèle d'arbre prépare une représentation arborescente en mémoire du document JSON. Il construit une arborescence de nœuds JsonObject. Il s'agit d'une approche flexible et analogue à l'analyseur DOM pour XML.
Créer une arborescence à partir de JSON
JsonParser fournit un pointeur vers le nœud racine de l'arborescence après avoir lu le JSON. Le nœud racine peut être utilisé pour parcourir l'arborescence complète. Considérez l'extrait de code suivant pour obtenir le nœud racine d'une chaîne JSON fournie.
//Create an JsonParser instance
JsonParser parser = new JsonParser();
String jsonString =
"{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
//create tree from JSON
JsonElement rootNode = parser.parse(jsonString);
Modèle d'arbre de déplacement
Obtenez chaque nœud en utilisant le chemin relatif vers le nœud racine tout en parcourant l'arborescence et traitez les données. L'extrait de code suivant montre comment parcourir une arborescence.
JsonObject details = rootNode.getAsJsonObject();
JsonElement nameNode = details.get("name");
System.out.println("Name: " +nameNode.getAsString());
JsonElement ageNode = details.get("age");
System.out.println("Age: " + ageNode.getAsInt());
Exemple
Créez un fichier de classe Java nommé GsonTester dans C: \> GSON_WORKSPACE.
File − GsonTester.java
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
public class GsonTester {
public static void main(String args[]) {
String jsonString =
"{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
JsonParser parser = new JsonParser();
JsonElement rootNode = parser.parse(jsonString);
if (rootNode.isJsonObject()) {
JsonObject details = rootNode.getAsJsonObject();
JsonElement nameNode = details.get("name");
System.out.println("Name: " +nameNode.getAsString());
JsonElement ageNode = details.get("age");
System.out.println("Age: " + ageNode.getAsInt());
JsonElement verifiedNode = details.get("verified");
System.out.println("Verified: " + (verifiedNode.getAsBoolean() ? "Yes":"No"));
JsonArray marks = details.getAsJsonArray("marks");
for (int i = 0; i < marks.size(); i++) {
JsonPrimitive value = marks.get(i).getAsJsonPrimitive();
System.out.print(value.getAsInt() + " ");
}
}
}
}
Vérifier le résultat
Compilez les classes en utilisant javac compilateur comme suit -
C:\GSON_WORKSPACE>javac GsonTester.java
Maintenant, exécutez le GsonTester pour voir le résultat -
C:\GSON_WORKSPACE>java GsonTester
Vérifiez la sortie.
Name: Mahesh Kumar
Age: 21
Verified: No
100 90 85