Tukar String ke JsonObject dengan Gson

1. Gambaran keseluruhan

Semasa bekerja dengan JSON di Java menggunakan perpustakaan Gson, kami mempunyai beberapa pilihan untuk menukar JSON mentah menjadi kelas atau struktur data lain yang dapat kami bekerjasama dengan lebih mudah.

Sebagai contoh, kita boleh menukar rentetan JSON ke Peta atau membuat kelas khusus dengan pemetaan.

Kadang-kadang, bagaimanapun, sangat berguna untuk dapat menukar JSON kita menjadi objek generik. Dalam tutorial ini, kita akan melihat bagaimana Gson dapat memberi kita JsonObject dari String.

2. Ketergantungan Maven

Pertama sekali, kita perlu memasukkan kebergantungan gson dalam pom.xml kami :

 com.google.code.gson gson 2.8.5 

Kita boleh mendapatkan versi terbaru gson di Maven Central.

3. Menggunakan JsonParser

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

Pada langkah pertama, kita perlu menguraikan rentetan asli kita .

Gson memberikan kita penghurai yang disebut JsonParser, yang menguraikan JSON String yang ditentukan menjadi pokok parse JsonElements :

public JsonElement parse(String json) throws JsonSyntaxException

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

Mari lihat bagaimana kita mendapatkan JsonObject akhir kami :

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 dariJson

Dalam pendekatan kedua kami, kami akan melihat cara membuat instance Gson dan menggunakan kaedah fromJson . Kaedah ini mendeserialisasikan JSON String yang ditentukan menjadi objek kelas yang ditentukan:

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

Mari lihat bagaimana kita dapat menggunakan kaedah ini untuk menguraikan JSON String kita , melewati 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 asas ini, kami telah mempelajari dua cara yang berbeza untuk menggunakan perpustakaan Gson untuk mendapatkan JsonObject dari String berformat JSON di Java. Oleh itu, kita harus menggunakan yang sesuai dengan operasi JSON perantaraan kita.

Seperti biasa, kod sumber untuk contoh ini boleh didapati di GitHub.