Gson - Ağaç Modeli
Ağaç Modeli, JSON belgesinin bir bellek içi ağaç gösterimini hazırlar. JsonObject düğümlerinden bir ağaç oluşturur. Esnek bir yaklaşımdır ve XML için DOM ayrıştırıcısına benzer.
JSON'dan Ağaç Oluştur
JsonParser, JSON'yi okuduktan sonra ağacın kök düğümüne bir işaretçi sağlar. Kök Düğüm, ağacın tamamını geçmek için kullanılabilir. Sağlanan bir JSON Dizesinin kök düğümünü almak için aşağıdaki kod parçacığını göz önünde bulundurun.
//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);
Geçiş Ağacı Modeli
Ağacı dolaşırken kök düğüme giden göreceli yolu kullanarak her düğümü alın ve verileri işleyin. Aşağıdaki kod parçacığı bir ağacı nasıl geçebileceğinizi gösterir.
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());
Misal
Adlı bir Java sınıf dosyası oluşturun GsonTester C: \> GSON_WORKSPACE içinde.
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() + " ");
}
}
}
}
Sonucu doğrulayın
Kullanarak sınıfları derleyin javac aşağıdaki gibi derleyici -
C:\GSON_WORKSPACE>javac GsonTester.java
Şimdi çalıştırın GsonTester sonucu görmek için -
C:\GSON_WORKSPACE>java GsonTester
Çıkışı doğrulayın.
Name: Mahesh Kumar
Age: 21
Verified: No
100 90 85