logo

Hogyan lehet a karakterláncot JSON-objektummá konvertálni a Java-ban?

Manapság nagyon elterjedt az adatok fogadása JSON karakterlánc formátumban XML helyett. Amikor JSON Stringgel foglalkozunk a Java-ban, az nem konvertálja a JSON karakterlánc nak nek JSON objektum . De használd a JSON karakterlánc mindig nem jó megoldás, mert nehéz kezelni. A technológia változása és igénye miatt szükségünk van rá konvertálja a JSON-karakterláncot JSON-objektummá értékeket lekérni. a probléma megoldására van néhány nyílt forráskódú könyvtár, amely lehetővé teszi számunkra konvertálja a JSON-karakterláncot JSON-objektummá. Ebben a részben elmagyaráztuk hogyan lehet a JSON-karakterláncot JSON-objektummá konvertálni részletesen példával. Mielőtt a fő témára térnénk, vessünk egy pillantást a JSON formátumra.

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

A fenti JSON formátum hat attribútumot tartalmaz, amelyek közül az első kettő karakterlánc, a következő három numerikus és végül egy JSON tömb.

Konvertálja a JSON-karakterláncot JSON-objektummá

A következő három könyvtár használható a String JSON-objektummá konvertálására Java nyelven:

  • A Gson Library használata
  • JSON-Simple Library használata
  • Jackson könyvtár

A Gson Library használata

A Gson nyílt forráskódú és gazdag Jáva a Google által biztosított könyvtár. A JSON-karakterlánc egyenértékű JSON-objektummá és a JSON-objektum JSON-karakterláncsá konvertálására szolgál. A következő kódsor a JSON-karakterlánc JSON-objektummá konvertálására szolgál.

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

A JSON objektumot JSON Stringgé is konvertálhatjuk a toJson() módszer.

 String str = g.toJson(p); 

JSON-Simple Library használata

Ez egy másik nyílt forráskódú Java-könyvtár, amelyet a JSON-karakterlánc JSON-objektummá konvertálására használnak. A JSON-Simple könyvtár előnye a kis mérete. Tökéletes ott, ahol a memóriakorlátozási környezet fontos. Vegye figyelembe, hogy a JDK 1.2-vel is kompatibilis. Ez azt jelenti, hogy használhatjuk olyan örökölt projektekkel, amelyek nem szerepelnek a Java 5-ben. A következő utasításokat használjuk a JSON-karakterlánc JSON-objektummá konvertálásához.

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

A Jackson Library használata

A Jackson-könyvtár egy hatékony és széles körben használt Java-könyvtár a Java objektumok JSON-ra és fordítva való leképezésére. Funkciókban gazdag, gyors a teljesítménye, és támogatja a streamelést is. Az adatfolyam képes elemezni a webszolgáltatások nagyméretű JSON-kimenetét anélkül, hogy teljesen betöltené a memóriába. A következő utasítás a tanulót képviselő JSON-karakterláncot a tanulót képviselő Java-osztállyá alakítja.

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

A Jackson könyvtár hátránya, hogy legalább JDK 1.5-öt igényel. Ezért ha egy régebbi verzióval van dolgunk, az nem fog odaférni. A Jackson könyvtár másik hátránya, hogy nem támogatja a J2ME-t.

Példa JSON-karakterlánc JSON-objektum átalakításra

A következő programban egy JSON-karakterláncot konvertáltunk JSON-objektummá.

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ássunk egy másik példát.

JsonStringToJsonObjectExample2.java

objektumosztály java-ban
 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); } } 

Kimenet:

 Sam Smith Python