logo

Hvordan konvertere streng til JSON-objekt i Java?

I dag er det veldig vanlig å motta data inn JSON-streng format i stedet for XML. Når vi arbeider med JSON-streng i Java, konverterer den ikke JSON-streng til JSON-objekt . Men bruk JSON-streng er alltid ikke et godt alternativ fordi det er vanskelig å håndtere det. På grunn av endringen og etterspørselen til teknologien, må vi konverter JSON-streng til JSON-objekt for å hente verdier. for å løse dette problemet er det noen åpen kildekode-biblioteker som lar oss gjøre det konverter JSON-streng til JSON-objekt. I denne delen har vi forklart hvordan konvertere JSON-streng til JSON-objekt i detalj med eksempel. Før vi går til hovedemnet, la oss ta en titt på JSON-formatet.

 jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] } 

Ovennevnte JSON-format inneholder seks attributter, hvorav de to første er strenger, de tre neste er numeriske og til slutt en JSON-matrise.

Konverter JSON-streng til JSON-objekt

Det er følgende tre biblioteker som brukes til å konvertere String til JSON Object i Java:

  • Bruker Gson Library
  • Bruker JSON-Simple Library
  • Jackson bibliotek

Bruker Gson Library

Gson er en åpen kildekode og rik Java bibliotek levert av Google. Den brukes til å konvertere JSON-streng til tilsvarende JSON-objekt og JSON-objekt til JSON-streng. Følgende kodelinje brukes til å konvertere JSON-streng til JSON-objekt.

 Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class) 

Vi kan også konvertere JSON Object til JSON String ved å bruke tilJson() metode.

 String str = g.toJson(p); 

Bruker JSON-Simple Library

Det er et annet åpen kildekode Java-bibliotek som brukes til å konvertere JSON String til JSON Object. Fordelen med JSON-Simple-biblioteket er dens lille størrelse. Den er perfekt der miljøet med minnebegrensninger er viktig. Merk at den også er kompatibel med JDK 1.2. Det betyr at vi kan bruke det med et eldre prosjekt som ikke er i Java 5. Vi bruker følgende setninger for å konvertere JSON-strengen til JSON-objekt.

 JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse); 

Bruker Jackson Library

Jackson-biblioteket er et effektivt og mye brukt Java-bibliotek for å kartlegge Java-objekter til JSON og omvendt. Den er rik på funksjoner, rask ytelse og støtter også streaming. Strømmen kan analysere en stor JSON-utgang fra nettjenester uten å laste den helt inn i minnet. Følgende setning konverterer JSON-streng som representerer en student, til en Java-klasse som representerer studenten.

 Student student = new ObjectMapper().readValue(jsonString, Student.class); 

Ulempen med Jackson-biblioteket er at det krever minst JDK 1.5. Derfor, hvis vi har å gjøre med en eldre versjon, vil den ikke passe der. En annen ulempe med Jackson-biblioteket er at det ikke støtter J2ME.

Eksempel på konvertering av JSON-streng til JSON-objekt

I det følgende programmet har vi konvertert en JSON-streng til JSON-objekt.

JsonStringToJsonObjectExample.java

 import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = &apos;[{&apos;No&apos;:&apos;17&apos;,&apos;Name&apos;:&apos;Andrew&apos;},{&apos;No&apos;:&apos;18&apos;,&apos;Name&apos;:&apos;Peter&apos;}, {&apos;No&apos;:&apos;19&apos;,&apos;Name&apos;:&apos;Tom&apos;}]&apos;; JSONArray array = new JSONArray(str); for(int i=0; i <array.length(); i++) { jsonobject object="array.getJSONObject(i);" system.out.println(object.getstring('no')); system.out.println(object.getstring('name')); } < pre> <p> <strong>Output:</strong> </p> <pre> 17 Andrew 18 Peter 19 Tom </pre> <p>Let&apos;s see another example.</p> <p> <strong>JsonStringToJsonObjectExample2.java</strong> </p> <pre> import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>

La oss se et annet eksempel.

JsonStringToJsonObjectExample2.java

homogen blanding
 import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } 

Produksjon:

 Sam Smith Python