Konversikan String ke JsonObject dengan Gson

1. Ikhtisar

Saat bekerja dengan JSON di Java menggunakan pustaka Gson, kami memiliki beberapa opsi yang dapat kami gunakan untuk mengonversi JSON mentah menjadi kelas atau struktur data lain yang dapat kami kerjakan dengan lebih mudah.

Misalnya, kita dapat mengonversi string JSON ke Peta atau membuat kelas khusus dengan pemetaan.

Terkadang, bagaimanapun, berguna untuk dapat mengubah JSON kita menjadi objek generik. Dalam tutorial ini, kita akan melihat bagaimana Gson dapat memberi kita JsonObject dari String.

2. Ketergantungan Maven

Pertama-tama, kita perlu menyertakan dependensi gson di pom.xml kita :

 com.google.code.gson gson 2.8.5 

Kami dapat menemukan versi gson terbaru di Maven Central.

3. Menggunakan JsonParser

Pendekatan pertama yang akan kita lihat untuk mengonversi String JSON menjadi JsonObject adalah proses dua langkah yang menggunakan kelas JsonParser .

Pada langkah pertama, kita perlu mengurai String asli kita .

Gson memberi kita parser yang disebut JsonParser, yang mengurai String JSON yang ditentukan menjadi pohon parse JsonElements :

public JsonElement parse(String json) throws JsonSyntaxException

Setelah String kami diurai di pohon JsonElement , kami akan menggunakan metode getAsJsonObject () , yang akan mengembalikan hasil yang diinginkan.

Mari kita lihat bagaimana kita mendapatkan JsonObject terakhir kita :

String json = "{ \"name\": \"Baeldung\", \"java\": true }"; JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject(); Assert.assertTrue(jsonObject.isJsonObject()); Assert.assertTrue(jsonObject.get("name").getAsString().equals("Baeldung")); Assert.assertTrue(jsonObject.get("java").getAsBoolean() == true);

4. Menggunakan fromJson

Dalam pendekatan kedua kami, kita akan melihat cara membuat Gson contoh dan menggunakan fromJson metode. Metode ini deserialisasi String JSON yang ditentukan menjadi objek dari kelas yang ditentukan:

public  T fromJson(String json, Class classOfT) throws JsonSyntaxException

Mari kita lihat bagaimana kita dapat menggunakan metode ini untuk mengurai String JSON kita , meneruskan kelas JsonObject sebagai parameter kedua:

String json = "{ \"name\": \"Baeldung\", \"java\": true }"; JsonObject convertedObject = new Gson().fromJson(json, JsonObject.class); Assert.assertTrue(convertedObject.isJsonObject()); Assert.assertTrue(convertedObject.get("name").getAsString().equals("Baeldung")); Assert.assertTrue(convertedObject.get("java").getAsBoolean() == true);

5. Kesimpulan

Dalam tutorial dasar ini, kita telah mempelajari dua cara berbeda untuk menggunakan perpustakaan Gson untuk mendapatkan JsonObject dari String berformat JSON di Java. Akibatnya, kita harus menggunakan salah satu yang lebih cocok dengan operasi JSON perantara kita.

Seperti biasa, kode sumber untuk contoh-contoh ini tersedia di GitHub.