JSON i Java
Jeg kunngjorde nettopp det nye Lær våren kurs, med fokus på det grunnleggende i vår 5 og vårstøvel 2:
>> KONTROLLER KURSET1. Oversikt
Det kan være enkelt å jobbe med JSON-data i Java, men - som det meste i Java - er det mange alternativer og biblioteker vi kan velge mellom.
Denne veiledningen skal gjøre dette valget enklere og skal gi deg en solid forståelse av økosystemet akkurat nå. Vi diskuterer de vanligste JSON-behandlingsbibliotekene i Java:
- Jackson
- Gson
- json-io
- Genson
Vi følger en enkel struktur for hvert bibliotek - først noen nyttige ressurser for å komme i gang (både her på Baeldung så vel som eksternt). Så skal vi gå over et grunnleggende kodeeksempel, bare for å se hvordan arbeidet med biblioteket faktisk ser ut.
2. Popularitet og grunnleggende statistikk
Først, la oss starte med litt statistikk som en fullmakt for populariteten til hvert bibliotek:
2.1. Jackson
- Maven Usage: data-bind (2362), kjerne (1377)
- Github Stars: 1457
- Github Forks: 585
2.2. Gson
- Bruk av Maven: 1588
- Github Stars: 2079
- Github Forks: 471
2.3. json-io
- Bruk av Maven: 11
- Github Stars: 129
- Github Forks: 40
2.4. Genson
- Bruk av Maven: 8
- Github Stars: 67
- Github Forks: 15
3. Jackson
La oss ta en titt på de mest populære av disse - Jackson. Jackson er et allsidig Java-bibliotek for behandling av JSON-data.
3.1. Nyttige ressurser
Her er noen offisielle ressurser for biblioteket:
- Offisiell Jackson wiki
- Jackson på Github
På Baeldung:
- Jackson tutorial
- Jackson Date
- Jackson JSON Visninger
- En guide til Jackson-merknader
- Jackson-unntak - problemer og løsninger
- Jackson - Bestem hvilke felt som blir serialisert / deserialisert
- Jackson - toveis forhold
- Jackson - Custom Serializer
- Jackson - Custom Deserializer
Andre interessante skrivinger:
- Jackson JSON Processing API i Java Eksempelveiledning
- Jackson - ObjectMapper
- Jackson 2 - Konverter Java-objekt til / fra JSON
3.2. Maven avhengighet
For å bruke biblioteket - her er Maven-avhengigheten å legge til i pom.xml:
com.fasterxml.jackson.core jackson-databind $ {jackson.version}
Merk at den siste versjonen av Jackson akkurat nå er 2.6.3.
3.3. Enkelt eksempel med Jackson
La oss nå se hvordan du bruker Jackson i et enkelt eksempel:
@Test offentlig ugyldig nårSerializeAndDeserializeUsingJackson_thenCorrect () kaster IOException {Foo foo = new Foo (1, "first"); ObjectMapper mapper = ny ObjectMapper (); Streng jsonStr = mapper.writeValueAsString (foo); Foo-resultat = mapper.readValue (jsonStr, Foo.class); assertEquals (foo.getId (), result.getId ()); }
Noter det:
- ObjectMapper.writeValueAsString () brukes til å serieisere objekt til JSON-streng.
- ObjectMapper.readValue () brukes til å deserialisere JSON-streng til Java Object.
- Eksempel på JSON-utgang:
{"id": 1, "name": "first"}
4. Gson
Gson er det neste Java JSON-biblioteket vi skal se på.
4.1. Nyttige ressurser
Her er noen offisielle ressurser for biblioteket:
- Gson på Github
- Gson brukerhåndbok
På Baeldung:
- Gson seriell kokebok
- Gson deserialisering kokebok
Andre interessante skrivinger:
- Gson-ekskluderingsstrategi
- Gson Custom Serializer / Deserializer
- Java Gson + JSON Tutorial med eksempler
4.2. Maven avhengighet
com.google.code.gson gson $ {gson.version}
Merk at den siste versjonen av Gson akkurat nå er 2.4.
4.3. Enkelt eksempel med Gson
Her er et enkelt eksempel for å avklare hvordan du bruker Gson til å serieisere / desrialisere JSON:
@Test offentlig ugyldig nårSerializeAndDeserializeUsingGson_thenCorrect () {Gson gson = new Gson (); Foo foo = nye Foo (1, "første"); String jsonStr = gson.toJson (foo); Foo resultat = gson.fromJson (jsonStr, Foo.class); assertEquals (foo.getId (), result.getId ()); }
Noter det:
- Gson.toJson () brukes til å serialisere Objekt til JSON
- Gson.fromJson () brukes til å desrialisere JSON til Java Object
5. Json-io
Json-io er et enkelt Java-bibliotek for å serieisere / deserialisere JSON.
5.1. Nyttige ressurser
Her er noen offisielle ressurser for biblioteket:
- json-io på Google Code
- json-io på Github
5.2. Maven avhengighet
com.cedarsoftware json-io $ {json-io.version}
Merk at den siste versjonen av json-io akkurat nå er 4.1.9.
5.3. Enkelt eksempel med json-io
La oss nå se på et enkelt eksempel på bruk av json-io:
@Test offentlig ugyldig nårSerializeAndDeserializeUsingJsonio_thenCorrect () {Foo foo = new Foo (1, "first"); String jsonStr = JsonWriter.objectToJson (foo); Foo-resultat = (Foo) JsonReader.jsonToJava (jsonStr); assertEquals (foo.getId (), result.getId ()); }
Noter det:
- JsonWriter.objectToJson () brukes til å serieisere objekt til JSON.
- JsonReader.jsonToJava () brukes til å deserialisere Json til Java Object.
- Eksempel på JSON-utgang:
{"@type": "org.baeldung.Foo", "id": 1, "name": "first"}
6. Genson
Genson er et Java- og Scala to JSON-konverteringsbibliotek som gir full databinding og streaming.
6.1. Nyttige ressurser
Her er noen offisielle ressurser for biblioteket:
- Genson offisielle nettside
- Genson på Github
- Genson brukerhåndbok
- Genson JSON-format for byte-arrays
6.2. Maven avhengighet
com.owlike genson $ {genson.version}
Merk at den siste versjonen av Genson akkurat nå er 1.3.
6.3. Enkelt eksempel med Genson
Her er et enkelt eksempel på å jobbe med biblioteket:
@Test offentlig ugyldig nårSerializeAndDeserializeUsingGenson_thenCorrect () {Genson genson = new Genson (); Foo foo = nye Foo (1, "første"); Streng jsonStr = genson.serialize (foo); Foo-resultat = genson.deserialize (jsonStr, Foo.class); assertEquals (foo.getId (), result.getId ()); }
Noter det:
- Genson.serialize () brukes til å serialisere Objekt til JSON
- Genson.desrialize () brukes til å deserialisere JSON til Java Object
7. Konklusjon
I denne raske oversiktsartikkelen lærte vi om de vanligste JSON-behandlingsbibliotekene i Java.
Jackson bunn