JSON Java-ban
Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:
>> ELLENŐRIZZE A FOLYAMATOT1. Áttekintés
A JSON-adatok Java-ban történő kezelése egyszerű lehet, de - mint a Java legtöbbje - rengeteg lehetőség és könyvtár közül választhatunk.
Ennek az útmutatónak megkönnyítenie kell a választást, és meg kell adnia az ökoszisztéma mostani megértését. Megbeszéljük a Java leggyakoribb JSON-feldolgozó könyvtárait:
- Jackson
- Gson
- json-io
- Genson
Minden könyvtár egyszerű felépítését követjük - először néhány hasznos forrás az induláshoz (mind itt, mind a Baeldungon, mind a külső). Akkor átmegyünk egy alap kód példa, csak azért, hogy lássam, hogyan is néz ki valójában a könyvtárral való munka.
2. Népszerűség és alapstatisztika
Először is kezdjünk néhány statisztikával, mint az egyes könyvtárak népszerűségének megalapozója:
2.1. Jackson
- Maven Használat: data-bind (2362), mag (1377)
- Github csillagok: 1457
- Github Forks: 585
2.2. Gson
- Maven használat: 1588
- Github csillagok: 2079
- Github Forks: 471
2.3. json-io
- Maven használat: 11
- Github csillagok: 129
- Github Forks: 40
2.4. Genson
- Maven használat: 8
- Github csillagok: 67
- Github Forks: 15
3. Jackson
Ezután vessünk egy pillantást ezek közül a legnépszerűbbre - Jacksonra. A Jackson egy többcélú Java könyvtár JSON adatok feldolgozására.
3.1. Hasznos források
Íme néhány hivatalos forrás a könyvtár számára:
- Hivatalos Jackson wiki
- Jackson a Githubon
Baeldungon:
- Jackson bemutató
- Jackson randevú
- Jackson JSON nézetek
- Útmutató a Jackson kommentárokhoz
- Jackson kivételek - problémák és megoldások
- Jackson - Döntse el, hogy mely mezők lesznek sorosítottak / deserializáltak
- Jackson - Kétirányú kapcsolatok
- Jackson - Egyéni Serializer
- Jackson - egyedi deserializer
Egyéb érdekes feliratok:
- Jackson JSON Processing API Java példaprogramban
- Jackson - ObjectMapper
- Jackson 2 - Java Object konvertálása JSON-ba / vissza
3.2. Maven-függőség
A könyvtár használatához - íme a Maven-függőség, amelyet hozzáadhat a könyvtárához pom.xml:
com.fasterxml.jackson.core jackson-databind $ {jackson.version}
Vegye figyelembe, hogy a Jackson legújabb verziója jelenleg az 2.6.3.
3.3. Egyszerű példa Jacksonnal
Most nézzük meg, hogyan kell Jacksonot használni egy egyszerű példában:
@Test public void whenSerializeAndDeserializeUsingJackson_thenCorrect () dobja az IOException-t {Foo foo = new Foo (1, "first"); ObjectMapper mapper = új ObjectMapper (); Karakterlánc jsonStr = mapper.writeValueAsString (foo); Foo eredmény = mapper.readValue (jsonStr, Foo.class); assertEquals (foo.getId (), eredmény.getId ()); }
Vegye figyelembe, hogy:
- ObjectMapper.writeValueAsString () az Object to JSON karakterlánc sorosítására szolgál.
- ObjectMapper.readValue () a JSON karakterlánc Java Object objektummá történő deserializálására szolgál.
- Minta JSON kimenet:
{"id": 1, "név": "első"}
4. Gson
A Gson a következő Java JSON könyvtár, amelyet meg fogunk nézni.
4.1. Hasznos források
Íme néhány hivatalos forrás a könyvtár számára:
- Gson a Githubon
- Gson felhasználói kézikönyv
Baeldungon:
- Gson sorosítási szakácskönyv
- Gson deserializációs szakácskönyv
Egyéb érdekes feliratok:
- Gson kirekesztési stratégia
- Gson Custom Serializer / Deserializer
- Java Gson + JSON bemutató példákkal
4.2. Maven-függőség
com.google.code.gson gson $ {gson.version}
Ne feledje, hogy a Gson mostani legújabb verziója az 2.4.
4.3. Egyszerű példa Gson-nal
Itt van egy egyszerű példa arra, hogy tisztázza, hogyan használható a Gson a JSON sorosítására / desrializálására:
@Test public void whenSerializeAndDeserializeUsingGson_thenCorrect () {Gson gson = new Gson (); Foo foo = új Foo (1, "első"); Karakterlánc jsonStr = gson.toJson (foo); Foo eredmény = gson.fromJson (jsonStr, Foo.class); assertEquals (foo.getId (), eredmény.getId ()); }
Vegye figyelembe, hogy:
- Gson.toJson () az Object JSON sorosítására szolgál
- Gson.-tól Json () a JSON Java Object-re való deszializálására szolgál
5. Json-io
A Json-io egy egyszerű Java könyvtár a JSON sorosítására / deserializálására.
5.1. Hasznos források
Íme néhány hivatalos forrás a könyvtár számára:
- json-io a Google Code-on
- json-io a Githubon
5.2. Maven-függőség
com.cedarsoftware json-io $ {json-io.version}
Vegye figyelembe, hogy a json-io legújabb verziója jelenleg az 4.1.9.
5.3. Egyszerű példa a json-io-val
Most nézzünk meg egy egyszerű példát a json-io használatára:
@Test public void whenSerializeAndDeserializeUsingJsonio_thenCorrect () {Foo foo = new Foo (1, "first"); Karakterlánc jsonStr = JsonWriter.objectToJson (foo); Foo eredmény = (Foo) JsonReader.jsonToJava (jsonStr); assertEquals (foo.getId (), eredmény.getId ()); }
Vegye figyelembe, hogy:
- JsonWriter.objectToJson () az Object JSON sorosítására szolgál.
- JsonReader.jsonToJava () a Json Java Object-ként való deszerializálására szolgál.
- Minta JSON kimenet:
{"@type": "org.baeldung.Foo", "id": 1, "név": "első"}
6. Genson
A Genson egy Java és Scala to JSON konvertáló könyvtár, amely teljes adatbázist és streaminget biztosít.
6.1. Hasznos források
Íme néhány hivatalos forrás a könyvtár számára:
- A Genson hivatalos honlapja
- Genson a Githubon
- Genson felhasználói kézikönyv
- Genson JSON formátum a bájt tömbökhöz
6.2. Maven-függőség
com.owlike genson $ {genson.version}
Ne feledje, hogy a Genson legújabb verziója jelenleg az 1.3.
6.3. Egyszerű példa Gensonnal
Íme egy egyszerű példa a könyvtárral való együttműködésre:
@Test public void whenSerializeAndDeserializeUsingGenson_thenCorrect () {Genson genson = new Genson (); Foo foo = új Foo (1, "első"); Karakterlánc jsonStr = genson.serialize (foo); Foo eredmény = genson.deserialize (jsonStr, Foo.class); assertEquals (foo.getId (), eredmény.getId ()); }
Vegye figyelembe, hogy:
- Genson.serialize () az Object JSON sorosítására szolgál
- Genson.desrialize () a JSON Java Object-ként való deszerializálására szolgál
7. Következtetés
Ebben a gyors áttekintő cikkben megismerhettük a Java leggyakoribb JSON-feldolgozó könyvtárait.
Jackson alsó