JSON v Jave
Práve som oznámil nové Naučte sa jar kurz zameraný na základy jari 5 a Spring Boot 2:
>> SKONTROLUJTE KURZ1. 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