logo

Hvordan konverteres streng til JSON-objekt i Java?

I dag er det meget almindeligt at modtage data ind JSON-streng format i stedet for XML. Når vi beskæftiger os med JSON String i Java, konverterer den ikke JSON-streng til JSON objekt . Men brug JSON-streng altid er ikke en god mulighed, fordi det er svært at håndtere det. På grund af teknologiens ændring og efterspørgsel er vi nødt til det konverter JSON-streng til JSON-objekt at hente værdier. for at løse dette problem er der nogle open source-biblioteker, der giver os mulighed for det konverter JSON-streng til JSON-objekt. I dette afsnit har vi forklaret hvordan man konverterer JSON String til JSON Object i detaljer med eksempel. Før vi går til hovedemnet, lad os se på JSON-formatet.

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

Ovenstående JSON-format indeholder seks attributter, hvoraf de to første er Strings, de næste tre er numeriske og til sidst et JSON-array.

Konverter JSON-streng til JSON-objekt

Der er følgende tre biblioteker, der bruges til at konvertere String til JSON Object i Java:

  • Brug af Gson Library
  • Brug af JSON-Simple Library
  • Jackson Bibliotek

Brug af Gson Library

Gson er en open source og rig Java bibliotek leveret af Google. Det bruges til at konvertere JSON String til tilsvarende JSON Object og JSON Object til JSON String. Følgende kodelinje bruges til at konvertere JSON String til JSON Object.

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

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

 String str = g.toJson(p); 

Brug af JSON-Simple Library

Det er et andet open source Java-bibliotek, der bruges til at konvertere JSON String til JSON Object. Fordelen ved JSON-Simple-biblioteket er dets lille størrelse. Det er perfekt, hvor miljøet med hukommelsesbegrænsning er vigtigt. Bemærk, at den også er kompatibel med JDK 1.2. Det betyder, at vi kan bruge det med et ældre projekt, som ikke er i Java 5. Vi bruger følgende sætninger til at konvertere JSON-strengen til JSON-objekt.

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

Brug af Jackson Library

Jackson-biblioteket er et effektivt og meget brugt Java-bibliotek til at kortlægge Java-objekter til JSON og omvendt. Den er rig på funktioner, hurtig i ydeevne og understøtter også streaming. Streamen kan parse et stort JSON-output fra webtjenester uden at indlæse det fuldt ud i hukommelsen. Følgende sætning konverterer JSON-streng, der repræsenterer en elev, til en Java-klasse, der repræsenterer eleven.

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

Ulempen ved Jackson-biblioteket er, at det kræver mindst JDK 1.5. Derfor, hvis vi har at gøre med en ældre version, vil den ikke passe der. En anden ulempe ved Jackson-biblioteket er, at det ikke understøtter J2ME.

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

I det følgende program har vi konverteret 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();>

Lad os se et andet eksempel.

JsonStringToJsonObjectExample2.java

latex skriftstørrelser
 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); } } 

Produktion:

 Sam Smith Python