JSON di Java

Jackson Top

Saya baru saja mengumumkan kursus Learn Spring baru , yang berfokus pada dasar-dasar Spring 5 dan Spring Boot 2:

>> LIHAT KURSUSnya

1. Ikhtisar

Bekerja dengan data JSON di Java bisa mudah , tetapi - seperti kebanyakan hal lainnya di Java - ada banyak opsi dan pustaka yang dapat kami pilih.

Panduan ini akan membuat pilihan itu lebih mudah dan memberi Anda pemahaman yang kuat tentang ekosistem saat ini. Kami akan membahas pustaka pemrosesan JSON paling umum di Java:

  • Jackson
  • Gson
  • json-io
  • Genson

Kami mengikuti struktur sederhana untuk setiap perpustakaan - pertama beberapa sumber daya yang berguna untuk memulai (baik di sini di Baeldung maupun di luar). Kemudian kita akan membahas contoh kode dasar , hanya untuk melihat bagaimana sebenarnya bekerja dengan perpustakaan.

2. Popularitas dan Statistik Dasar

Pertama, mari kita mulai dengan beberapa statistik sebagai proksi untuk popularitas setiap perpustakaan:

2.1. Jackson

  • Penggunaan Maven: data-bind ( 2362 ), core ( 1377 )
  • Bintang Github: 1457
  • Garpu Github: 585

2.2. Gson

  • Penggunaan Maven: 1588
  • Bintang Github: 2079
  • Github Forks: 471

2.3. json-io

  • Penggunaan Maven: 11
  • Bintang Github: 129
  • Github Forks: 40

2.4. Genson

  • Penggunaan Maven: 8
  • Bintang Github: 67
  • Github Forks: 15

3. Jackson

Selanjutnya, mari kita lihat yang paling populer - Jackson. Jackson adalah pustaka Java multiguna untuk memproses data JSON.

3.1. Sumber Daya Berguna

Berikut beberapa sumber resmi untuk perpustakaan:

  • Wiki Jackson resmi
  • Jackson di Github

Tentang Baeldung:

  • Tutorial Jackson
  • Jackson Date
  • Jackson JSON Views
  • Panduan untuk Anotasi Jackson
  • Pengecualian Jackson - Masalah dan Solusinya
  • Jackson - Putuskan Bidang Apa yang Diserialisasi / Deserialisasi
  • Jackson - Hubungan Dua Arah
  • Jackson - Serializer Khusus
  • Jackson - Deserializer Khusus

Tulisan Menarik Lainnya:

  • Jackson JSON Processing API dalam Tutorial Contoh Java
  • Jackson - ObjectMapper
  • Jackson 2 - Konversi Objek Java ke / dari JSON

3.2. Ketergantungan Maven

Untuk menggunakan perpustakaan - berikut ini ketergantungan Maven untuk ditambahkan ke pom.xml Anda :

 com.fasterxml.jackson.core jackson-databind ${jackson.version} 

Perhatikan bahwa versi terbaru Jackson saat ini adalah 2.6.3 .

3.3. Contoh Sederhana dengan Jackson

Sekarang, mari kita lihat cara menggunakan Jackson dalam contoh sederhana:

@Test public void whenSerializeAndDeserializeUsingJackson_thenCorrect() throws IOException{ Foo foo = new Foo(1,"first"); ObjectMapper mapper = new ObjectMapper(); String jsonStr = mapper.writeValueAsString(foo); Foo result = mapper.readValue(jsonStr, Foo.class); assertEquals(foo.getId(),result.getId()); }

Perhatikan bahwa:

  • ObjectMapper.writeValueAsString () digunakan untuk membuat serial Object menjadi string JSON.
  • ObjectMapper.readValue () digunakan untuk deserialisasi string JSON ke Objek Java.
  • Contoh keluaran JSON:
{ "id":1, "name":"first" }

4. Gson

Gson adalah pustaka Java JSON berikutnya yang akan kita lihat.

4.1. Sumber Daya Berguna

Berikut beberapa sumber resmi untuk perpustakaan:

  • Gson di Github
  • Panduan Pengguna Gson

Tentang Baeldung:

  • Buku masak serialisasi Gson
  • Buku resep deserialization Gson

Tulisan Menarik Lainnya:

  • Strategi Pengecualian Gson
  • Gson Custom Serializer / Deserializer
  • Java Gson + JSON Tutorial with Examples

4.2. Maven Dependency

 com.google.code.gson gson ${gson.version} 

Note that the latest version of Gson right now is 2.4.

4.3. Simple Example with Gson

Here is a simple example clarify how to use Gson to serialize/desrialize JSON:

@Test public void whenSerializeAndDeserializeUsingGson_thenCorrect(){ Gson gson = new Gson(); Foo foo = new Foo(1,"first"); String jsonStr = gson.toJson(foo); Foo result = gson.fromJson(jsonStr, Foo.class); assertEquals(foo.getId(),result.getId()); }

Note that:

  • Gson.toJson() is used to serialize Object to JSON
  • Gson.fromJson() is used to desrialize JSON to Java Object

5. Json-io

Json-io is a simple Java library to serialize/deserialize JSON.

5.1. Useful Resources

Here are some official resources for the library:

  • json-io on Google Code
  • json-io on Github

5.2. Maven Dependency

 com.cedarsoftware json-io ${json-io.version} 

Note that the latest version of json-io right now is 4.1.9.

5.3. Simple Example with json-io

Now, let's take a look at a simple example of using json-io:

@Test public void whenSerializeAndDeserializeUsingJsonio_thenCorrect(){ Foo foo = new Foo(1,"first"); String jsonStr = JsonWriter.objectToJson(foo); Foo result = (Foo) JsonReader.jsonToJava(jsonStr); assertEquals(foo.getId(),result.getId()); }

Note that:

  • JsonWriter.objectToJson() is used to serialize Object to JSON.
  • JsonReader.jsonToJava() is used to deserialize Json to Java Object.
  • Sample JSON output:
{ "@type":"org.baeldung.Foo", "id":1, "name":"first" }

6. Genson

Genson is a Java and Scala to JSON conversion library, providing full databinding and streaming.

6.1. Useful Resources

Here are some official resources for the library:

  • Genson Official website
  • Genson on Github
  • Genson User Guide
  • Genson JSON format for byte arrays

6.2. Maven Dependency

 com.owlike genson ${genson.version} 

Note that the latest version of Genson right now is 1.3.

6.3. Simple Example with Genson

Here's a simple example of working with the library:

@Test public void whenSerializeAndDeserializeUsingGenson_thenCorrect(){ Genson genson = new Genson(); Foo foo = new Foo(1,"first"); String jsonStr = genson.serialize(foo); Foo result = genson.deserialize(jsonStr, Foo.class); assertEquals(foo.getId(),result.getId()); }

Note that:

  • Genson.serialize() is used to serialize Object to JSON
  • Genson.desrialize() is used to deserialize JSON to Java Object

7. Conclusion

Dalam artikel ikhtisar singkat ini, kita mempelajari tentang pustaka pemrosesan JSON yang paling umum di Java.

Jackson bawah

Saya baru saja mengumumkan kursus Learn Spring baru , yang berfokus pada dasar-dasar Spring 5 dan Spring Boot 2:

>> LIHAT KURSUSnya