logo

Hoe String naar JSON-object in Java te converteren?

Tegenwoordig is het heel gebruikelijk om gegevens binnen te krijgen JSON-tekenreeks formaat in plaats van XML. Wanneer we te maken hebben met JSON String in Java, converteert het de JSON-tekenreeks naar JSON-object . Maar gebruik de JSON-tekenreeks is altijd geen goede optie omdat het lastig is om er mee om te gaan. Vanwege de verandering en de vraag van de technologie moeten we dat doen converteer JSON-tekenreeks naar JSON-object waarden op te halen. Om dit probleem op te lossen, zijn er enkele open-sourcebibliotheken waarmee we dit kunnen doen converteer JSON-tekenreeks naar JSON-object. In deze sectie hebben we het uitgelegd hoe JSON String naar JSON Object te converteren gedetailleerd met voorbeeld. Laten we, voordat we naar het hoofdonderwerp gaan, eens kijken naar het JSON-formaat.

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

Het bovenstaande JSON-formaat bevat zes attributen waarvan de eerste twee Strings zijn, de volgende drie numeriek en ten slotte een JSON-array.

Converteer JSON-tekenreeks naar JSON-object

Er worden de volgende drie bibliotheken gebruikt om String naar JSON Object in Java te converteren:

  • Gson-bibliotheek gebruiken
  • JSON-Simple-bibliotheek gebruiken
  • Jackson-bibliotheek

Gson-bibliotheek gebruiken

Gson is open-source en rijk Java bibliotheek aangeboden door Google. Het wordt gebruikt om JSON String te converteren naar gelijkwaardig JSON Object en JSON Object naar JSON String. De volgende coderegel wordt gebruikt om JSON String naar JSON Object te converteren.

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

We kunnen JSON Object ook naar JSON String converteren met behulp van de toJson() methode.

 String str = g.toJson(p); 

JSON-Simple-bibliotheek gebruiken

Het is een andere open-source Java-bibliotheek die wordt gebruikt voor het converteren van JSON String naar JSON Object. Het voordeel van de JSON-Simple-bibliotheek is de kleine omvang. Het is perfect als de omgeving met geheugenbeperking belangrijk is. Merk op dat het ook compatibel is met JDK 1.2. Het betekent dat we het kunnen gebruiken met een ouder project dat zich niet in Java 5 bevindt. We gebruiken de volgende instructies om de JSON String naar JSON Object te converteren.

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

Jackson-bibliotheek gebruiken

Jackson-bibliotheek is een efficiƫnte en veelgebruikte Java-bibliotheek om Java-objecten aan JSON toe te wijzen en omgekeerd. Het is rijk aan functies, snelle prestaties en ondersteunt ook streaming. De stream kan een grote JSON-uitvoer van webservices parseren zonder deze volledig in het geheugen te laden. De volgende instructie converteert JSON String die een student vertegenwoordigt naar een Java-klasse die de student vertegenwoordigt.

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

Het nadeel van de Jackson-bibliotheek is dat deze minimaal JDK 1.5 vereist. Als we dus met een oudere versie te maken hebben, past deze daar niet. Een ander nadeel van de Jackson-bibliotheek is dat deze geen J2ME ondersteunt.

Voorbeeld van JSON-tekenreeks naar JSON-objectconversie

In het volgende programma hebben we een JSON String naar JSON Object geconverteerd.

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();>

Laten we nog een voorbeeld bekijken.

JsonStringToJsonObjectExample2.java

soort in Java
 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); } } 

Uitgang:

 Sam Smith Python