JSON v Jave

Jackson Top

Práve som oznámil nové Naučte sa jar kurz zameraný na základy jari 5 a Spring Boot 2:

>> SKONTROLUJTE KURZ

1. Prehľad

Práca s údajmi JSON v Jave môže byť jednoduchá, ale - rovnako ako väčšina ostatných v Jave - existuje veľa možností a knižníc, z ktorých si môžeme vyberať.

Táto príručka by mala uľahčiť túto voľbu a mala by vám poskytnúť dôkladné pochopenie ekosystému práve teraz. Budeme diskutovať o najbežnejších knižniciach spracovania JSON v Jave:

  • Jackson
  • Gson
  • json-io
  • Genson

Sledujeme jednoduchú štruktúru pre každú knižnicu - najskôr niekoľko užitočných zdrojov, ktoré vám pomôžu začať (tu aj v Baeldungu, aj externe). Potom prejdeme príklad základného kódu, len aby sme videli, ako vlastne vyzerá práca s knižnicou.

2. Popularita a základné štatistiky

Najprv začnime s niektorými štatistikami ako proxy pre popularitu každej knižnice:

2.1. Jackson

  • Použitie Maven: data-bind (2362), jadro (1377)
  • Github Stars: 1457
  • Github Forks: 585

2.2. Gson

  • Použitie Maven: 1588
  • Github Stars: 2079
  • Github Forks: 471

2.3. json-io

  • Použitie Maven: 11
  • Github Stars: 129
  • Github Forks: 40

2.4. Genson

  • Použitie Maven: 8
  • Github Stars: 67
  • Github Forks: 15

3. Jackson

Ďalej sa pozrime na najobľúbenejšie z nich - Jackson. Jackson je viacúčelová knižnica Java na spracovanie údajov JSON.

3.1. Užitočné zdroje

Tu je niekoľko oficiálnych zdrojov pre knižnicu:

  • Oficiálna Jacksonova wiki
  • Jackson na Githube

Na Baeldung:

  • Jackson návod
  • Jackson Date
  • Jackson JSON Views
  • Sprievodca anotáciami podľa Jacksona
  • Jacksonove výnimky - problémy a riešenia
  • Jackson - Rozhodnite sa, ktoré polia sa majú serializovať / deserializovať
  • Jackson - obojsmerné vzťahy
  • Jackson - vlastný serializátor
  • Jackson - vlastný deserializátor

Ďalšie zaujímavé zápisy:

  • Jackson JSON Processing API v Java Príklad výučby
  • Jackson - ObjectMapper
  • Jackson 2 - Prevod objektov Java na / z formátu JSON

3.2. Maven závislosť

Ak chcete používať knižnicu - tu je závislosť Maven, ktorú môžete pridať do svojho súboru pom.xml:

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

Upozorňujeme, že najnovšia verzia aplikácie Jackson je teraz 2.6.3.

3.3. Jednoduchý príklad s Jacksonom

Teraz sa pozrime, ako použiť Jacksona v jednoduchom príklade:

@Test public void whenSerializeAndDeserializeUsingJackson_thenCorrect () hodí IOException {Foo foo = new Foo (1, "first"); ObjectMapper mapovač = nový ObjectMapper (); Reťazec jsonStr = mapper.writeValueAsString (foo); Výsledok Foo = mapper.readValue (jsonStr, Foo.class); assertEquals (foo.getId (), result.getId ()); }

Poznač si to:

  • ObjectMapper.writeValueAsString () sa používa na serializáciu reťazca Object to JSON.
  • ObjectMapper.readValue () sa používa na deserializáciu reťazca JSON na objekt Java.
  • Ukážkový výstup JSON:
{"id": 1, "name": "first"}

4. Gson

Gson je ďalšia knižnica Java JSON, ktorú si prehliadneme.

4.1. Užitočné zdroje

Tu je niekoľko oficiálnych zdrojov pre knižnicu:

  • Gson na Githube
  • Užívateľská príručka Gson

Na Baeldung:

  • Kuchárska kniha o serializácii Gson
  • Kuchárska kniha deserializácie Gson

Ďalšie zaujímavé zápisy:

  • Stratégia vylúčenia Gson
  • Vlastný serializátor / deserializátor Gson
  • Výukový program Java Gson + JSON s príkladmi

4.2. Maven závislosť

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

Upozorňujeme, že najnovšia verzia aplikácie Gson je teraz 2.4.

4.3. Jednoduchý príklad s Gsonom

Tu je jednoduchý príklad, ktorý objasňuje, ako používať Gson na serializáciu / desrializáciu súboru JSON:

@Test public void whenSerializeAndDeserializeUsingGson_thenCorrect () {Gson gson = nový Gson (); Foo foo = nový Foo (1, „prvý“); Reťazec jsonStr = gson.toJson (foo); Výsledok Foo = gson.fromJson (jsonStr, Foo.class); assertEquals (foo.getId (), result.getId ()); }

Poznač si to:

  • Gson.toJson () sa používa na serializáciu Object na JSON
  • Gson.fromJson () sa používa na desrializáciu JSON na objekt Java

5. Json-io

Json-io je jednoduchá knižnica Java na serializáciu / deserializáciu súboru JSON.

5.1. Užitočné zdroje

Tu je niekoľko oficiálnych zdrojov pre knižnicu:

  • json-io v službe Google Code
  • json-io na Githube

5.2. Maven závislosť

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

Upozorňujeme, že najnovšia verzia json-io je práve teraz 4.1.9.

5.3. Jednoduchý príklad s json-io

Poďme sa teraz pozrieť na jednoduchý príklad použitia json-io:

@Test public void whenSerializeAndDeserializeUsingJsonio_thenCorrect () {Foo foo = new Foo (1, "first"); Reťazec jsonStr = JsonWriter.objectToJson (foo); Výsledok Foo = (Foo) JsonReader.jsonToJava (jsonStr); assertEquals (foo.getId (), result.getId ()); }

Poznač si to:

  • JsonWriter.objectToJson () sa používa na serializáciu Object na JSON.
  • JsonReader.jsonToJava () sa používa na deserializáciu súboru Json na objekt Java.
  • Ukážkový výstup JSON:
{"@type": "org.baeldung.Foo", "id": 1, "name": "prvý"}

6. Genson

Genson je konverzná knižnica Java a Scala na JSON, ktorá poskytuje úplné viazanie údajov a streamovanie.

6.1. Užitočné zdroje

Tu je niekoľko oficiálnych zdrojov pre knižnicu:

  • Oficiálna webová stránka spoločnosti Genson
  • Genson na Githube
  • Užívateľská príručka spoločnosti Genson
  • Formát Genson JSON pre bajtové polia

6.2. Maven závislosť

 com.owlike genson $ {genson.version} 

Upozorňujeme, že najnovšia verzia aplikácie Genson je teraz 1.3.

6.3. Jednoduchý príklad s Gensonom

Tu je jednoduchý príklad práce s knižnicou:

@Test public void whenSerializeAndDeserializeUsingGenson_thenCorrect () {Genson genson = nový Genson (); Foo foo = nový Foo (1, „prvý“); Reťazec jsonStr = genson.serialize (foo); Výsledok Foo = genson.deserialize (jsonStr, Foo.class); assertEquals (foo.getId (), result.getId ()); }

Poznač si to:

  • Genson.serialize () sa používa na serializáciu Object na JSON
  • Genson.desrialize () sa používa na deserializáciu JSON na objekt Java

7. Záver

V tomto článku s rýchlym prehľadom sme sa dozvedeli o najbežnejších knižniciach spracovania JSON v Jave.

Jackson spodok

Práve som oznámil nové Naučte sa jar kurz zameraný na základy jari 5 a Spring Boot 2:

>> SKONTROLUJTE KURZ