logo

Hur konverterar man sträng till JSON-objekt i Java?

Numera är det mycket vanligt att ta emot data in JSON-sträng format istället för XML. När vi hanterar JSON String i Java konverterar den inte JSON-sträng till JSON-objekt . Men använd JSON-sträng är alltid inte ett bra alternativ eftersom det är svårt att hantera det. På grund av teknikens förändring och efterfrågan måste vi göra det konvertera JSON String till JSON Object för att hämta värden. för att lösa detta problem finns det några bibliotek med öppen källkod som tillåter oss att konvertera JSON String till JSON Object. I det här avsnittet har vi förklarat hur man konverterar JSON String till JSON Object i detalj med exempel. Innan vi går till huvudämnet, låt 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] } 

Ovanstående JSON-format innehåller sex attribut, varav de två första är strängar, de nästa tre är numeriska och till sist en JSON-array.

Konvertera JSON-sträng till JSON-objekt

Det finns följande tre bibliotek som används för att konvertera String till JSON Object i Java:

  • Använder Gson Library
  • Använder JSON-Simple Library
  • Jackson bibliotek

Använder Gson Library

Gson är en öppen källkod och rik Java bibliotek som tillhandahålls av Google. Den används för att konvertera JSON String till motsvarande JSON Object och JSON Object till JSON String. Följande kodrad används för att konvertera JSON String till JSON Object.

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

Vi kan också konvertera JSON Object till JSON String genom att använda tillJson() metod.

 String str = g.toJson(p); 

Använder JSON-Simple Library

Det är ett annat Java-bibliotek med öppen källkod som används för att konvertera JSON String till JSON Object. Fördelen med JSON-Simple-biblioteket är dess ringa storlek. Den är perfekt där miljön med minnesbegränsningar är viktig. Observera att den också är kompatibel med JDK 1.2. Det betyder att vi kan använda det med ett äldre projekt som inte finns i Java 5. Vi använder följande satser för att konvertera JSON-strängen till JSON-objekt.

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

Använder Jackson Library

Jackson library är ett effektivt och allmänt använt Java-bibliotek för att mappa Java-objekt till JSON och vice versa. Den är rik på funktioner, snabb prestanda och stöder även streaming. Strömmen kan analysera en stor JSON-utdata från webbtjänster utan att ladda den helt i minnet. Följande sats konverterar JSON-sträng som representerar en elev till en Java-klass som representerar studenten.

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

Nackdelen med Jackson-biblioteket är att det kräver minst JDK 1.5. Därför, om vi har att göra med en äldre version, kommer den inte att passa där. En annan nackdel med Jackson-biblioteket är att det inte stöder J2ME.

Exempel på konvertering av JSON-sträng till JSON-objekt

I följande program har vi konverterat en JSON-sträng till 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();>

Låt oss se ett annat exempel.

JsonStringToJsonObjectExample2.java

nginx
 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