Heutzutage ist es sehr üblich, Daten in zu empfangen JSON-String Format anstelle von XML. Wenn wir in Java mit JSON-Strings arbeiten, wird dieser nicht konvertiert JSON-String Zu JSON-Objekt . Aber nutzen Sie die JSON-String ist immer keine gute Option, weil es schwierig ist, damit umzugehen. Aufgrund der Veränderung und Nachfrage der Technologie müssen wir dies tun Konvertieren Sie einen JSON-String in ein JSON-Objekt um Werte abzurufen. Um dieses Problem zu lösen, gibt es einige Open-Source-Bibliotheken, die uns dies ermöglichen Konvertieren Sie einen JSON-String in ein JSON-Objekt. In diesem Abschnitt haben wir es erklärt So konvertieren Sie einen JSON-String in ein JSON-Objekt Ausführlich mit Beispiel. Bevor wir zum Hauptthema übergehen, werfen wir einen Blick auf das JSON-Format.
jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] }
Das obige JSON-Format enthält sechs Attribute, von denen die ersten beiden Strings sind, die nächsten drei numerisch und schließlich ein JSON-Array.
Konvertieren Sie einen JSON-String in ein JSON-Objekt
Es gibt die folgenden drei Bibliotheken, die zum Konvertieren von String in ein JSON-Objekt in Java verwendet werden:
- Verwenden der Gson-Bibliothek
- Verwenden der JSON-Simple-Bibliothek
- Jackson-Bibliothek
Verwenden der Gson-Bibliothek
Gson ist Open Source und reichhaltig Java Bibliothek von Google bereitgestellt. Es wird verwendet, um einen JSON-String in ein entsprechendes JSON-Objekt und ein JSON-Objekt in einen JSON-String zu konvertieren. Die folgende Codezeile wird verwendet, um JSON String in JSON Object zu konvertieren.
Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class)
Wir können JSON-Objekte auch in JSON-Strings konvertieren, indem wir die verwenden toJson() Methode.
String str = g.toJson(p);
Verwenden der JSON-Simple-Bibliothek
Es handelt sich um eine weitere Open-Source-Java-Bibliothek, die zum Konvertieren von JSON-String in JSON-Objekt verwendet wird. Der Vorteil der JSON-Simple-Bibliothek ist ihre geringe Größe. Es ist perfekt, wenn die Speicherbeschränkungsumgebung wichtig ist. Beachten Sie, dass es auch mit JDK 1.2 kompatibel ist. Das bedeutet, dass wir es mit einem Legacy-Projekt verwenden können, das nicht in Java 5 ist. Wir verwenden die folgenden Anweisungen, um den JSON-String in ein JSON-Objekt zu konvertieren.
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse);
Nutzung der Jackson Library
Die Jackson-Bibliothek ist eine effiziente und weit verbreitete Java-Bibliothek zum Zuordnen von Java-Objekten zu JSON und umgekehrt. Es ist reich an Funktionen, schnell in der Leistung und unterstützt auch Streaming. Der Stream kann eine große JSON-Ausgabe von Webdiensten analysieren, ohne sie vollständig in den Speicher zu laden. Die folgende Anweisung konvertiert einen JSON-String, der einen Schüler darstellt, in eine Java-Klasse, die den Schüler darstellt.
Student student = new ObjectMapper().readValue(jsonString, Student.class);
Der Nachteil der Jackson-Bibliothek besteht darin, dass sie mindestens JDK 1.5 erfordert. Wenn es sich also um eine ältere Version handelt, passt diese dort nicht hinein. Ein weiterer Nachteil der Jackson-Bibliothek besteht darin, dass sie J2ME nicht unterstützt.
Beispiel für die Konvertierung von JSON-String in JSON-Objekt
Im folgenden Programm haben wir einen JSON-String in ein JSON-Objekt konvertiert.
JsonStringToJsonObjectExample.java
import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = '[{'No':'17','Name':'Andrew'},{'No':'18','Name':'Peter'}, {'No':'19','Name':'Tom'}]'; 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'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 = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>
Sehen wir uns ein weiteres Beispiel an.
JsonStringToJsonObjectExample2.java
C++-String-Split
import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } }
Ausgabe:
Sam Smith Python