logo

Ako previesť reťazec na objekt JSON v jazyku Java?

V súčasnosti je veľmi bežné prijímať dáta v Reťazec JSON formát namiesto XML. Keď sa zaoberáme reťazcom JSON v jazyku Java, nekonvertuje to Reťazec JSON do Objekt JSON . Ale použite Reťazec JSON vždy to nie je dobrá voľba, pretože je ťažké sa s tým vyrovnať. Kvôli zmene a dopytu technológie musíme previesť reťazec JSON na objekt JSON na načítanie hodnôt. na vyriešenie tohto problému existuje niekoľko knižníc s otvoreným zdrojom, ktoré nám to umožňujú previesť reťazec JSON na objekt JSON. V tejto časti sme vysvetlili ako previesť reťazec JSON na objekt JSON podrobne s príkladom. Skôr než prejdeme k hlavnej téme, pozrime sa na formát JSON.

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

Vyššie uvedený formát JSON obsahuje šesť atribútov, z ktorých prvé dva sú reťazce, ďalšie tri sú číselné a nakoniec pole JSON.

Preveďte reťazec JSON na objekt JSON

Na prevod reťazca na objekt JSON v jazyku Java sa používajú nasledujúce tri knižnice:

  • Používanie knižnice Gson
  • Použitie JSON-Jednoduchej knižnice
  • Jacksonova knižnica

Používanie knižnice Gson

Gson je open-source a bohatý Java knižnica poskytovaná spoločnosťou Google. Používa sa na prevod JSON String na ekvivalentný JSON Object a JSON Object na JSON String. Nasledujúci riadok kódu sa používa na konverziu reťazca JSON na objekt JSON.

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

Objekt JSON môžeme tiež previesť na reťazec JSON pomocou toJson() metóda.

 String str = g.toJson(p); 

Použitie JSON-Jednoduchej knižnice

Je to ďalšia open-source Java knižnica používaná na konverziu JSON String na JSON Object. Výhodou knižnice JSON-Simple je jej malá veľkosť. Je ideálny tam, kde je dôležité prostredie s obmedzením pamäte. Upozorňujeme, že je tiež kompatibilný s JDK 1.2. To znamená, že ho môžeme použiť so starším projektom, ktorý nie je v jazyku Java 5. Na konverziu JSON String na JSON Object používame nasledujúce príkazy.

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

Použitie Jackson Library

Jackson library je efektívna a široko používaná Java knižnica na mapovanie Java objektov do JSON a naopak. Je bohatý na funkcie, rýchly vo výkone a podporuje aj streamovanie. Tok dokáže analyzovať veľký výstup JSON z webových služieb bez toho, aby ho úplne načítal do pamäte. Nasledujúci príkaz konvertuje reťazec JSON reprezentujúci študenta na triedu Java reprezentujúcu študenta.

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

Nevýhodou knižnice Jackson je, že vyžaduje aspoň JDK 1.5. Ak teda máme dočinenia so staršou verziou, nezmestí sa tam. Ďalšou nevýhodou knižnice Jackson je, že nepodporuje J2ME.

Príklad konverzie reťazca JSON na objekt JSON

V nasledujúcom programe sme skonvertovali reťazec JSON na objekt JSON.

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

Pozrime sa na ďalší príklad.

JsonStringToJsonObjectExample2.java

c formátovaný reťazec
 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); } } 

Výkon:

 Sam Smith Python