Gson - model drzewa
Model drzewa przygotowuje reprezentację drzewa dokumentu JSON w pamięci. Tworzy drzewo węzłów JsonObject. Jest to elastyczne podejście i jest analogiczne do parsera DOM dla XML.
Utwórz drzewo z formatu JSON
JsonParser udostępnia wskaźnik do węzła głównego drzewa po odczytaniu kodu JSON. Węzeł główny może służyć do przechodzenia przez całe drzewo. Rozważ poniższy fragment kodu, aby pobrać węzeł główny podanego ciągu JSON.
//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);
Model drzewa przechodzenia
Pobierz każdy węzeł za pomocą ścieżki względnej do węzła głównego podczas przeglądania drzewa i przetwarzania danych. Poniższy fragment kodu pokazuje, jak można przechodzić przez drzewo.
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());
Przykład
Utwórz plik klasy Java o nazwie GsonTester w 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() + " ");
}
}
}
}
Sprawdź wynik
Skompiluj klasy przy użyciu javac kompilator w następujący sposób -
C:\GSON_WORKSPACE>javac GsonTester.java
Teraz uruchom GsonTester aby zobaczyć wynik -
C:\GSON_WORKSPACE>java GsonTester
Sprawdź dane wyjściowe.
Name: Mahesh Kumar
Age: 21
Verified: No
100 90 85