logo

Kako pretvoriti niz v objekt JSON v Javi?

Dandanes je zelo pogosto prejemanje podatkov v Niz JSON namesto XML. Ko imamo opravka z nizom JSON v Javi, ta ne pretvori Niz JSON do Objekt JSON . Toda uporabite Niz JSON vedno ni dobra možnost, ker se je s tem težko spopasti. Zaradi sprememb in zahtev tehnologije moramo pretvori niz JSON v objekt JSON za pridobivanje vrednosti. za rešitev te težave obstaja nekaj odprtokodnih knjižnic, ki nam to omogočajo pretvori niz JSON v objekt JSON. V tem razdelku smo pojasnili kako pretvoriti JSON String v JSON Object podrobno s primerom. Preden preidemo na glavno temo, si poglejmo format JSON.

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

Zgornji format JSON vsebuje šest atributov, od katerih sta prva dva niza, naslednji trije so številski in nazadnje polje JSON.

Pretvori niz JSON v objekt JSON

Za pretvorbo niza v objekt JSON v Javi se uporabljajo naslednje tri knjižnice:

  • Uporaba knjižnice Gson
  • Uporaba JSON-Simple Library
  • Jacksonova knjižnica

Uporaba knjižnice Gson

Gson je odprtokoden in bogat Java knjižnica, ki jo zagotavlja Google. Uporablja se za pretvorbo niza JSON v enakovredni objekt JSON in predmeta JSON v niz JSON. Naslednja vrstica kode se uporablja za pretvorbo niza JSON v objekt JSON.

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

Objekt JSON lahko pretvorimo tudi v niz JSON z uporabo toJson() metoda.

 String str = g.toJson(p); 

Uporaba JSON-Simple Library

Je še ena odprtokodna knjižnica Java, ki se uporablja za pretvorbo JSON String v JSON Object. Prednost knjižnice JSON-Simple je njena majhnost. Popoln je tam, kjer je pomembno okolje omejitev pomnilnika. Upoštevajte, da je združljiv tudi z JDK 1.2. To pomeni, da ga lahko uporabimo s podedovanim projektom, ki ni v Javi 5. Za pretvorbo niza JSON v objekt JSON uporabimo naslednje stavke.

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

Uporaba knjižnice Jackson

Knjižnica Jackson je učinkovita in pogosto uporabljena knjižnica Java za preslikavo predmetov Java v JSON in obratno. Je bogat s funkcijami, hitro deluje in podpira tudi pretakanje. Tok lahko razčleni velik izhod JSON iz spletnih storitev, ne da bi ga v celoti naložil v pomnilnik. Naslednji stavek pretvori niz JSON, ki predstavlja študenta, v razred Java, ki predstavlja študenta.

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

Slabost knjižnice Jackson je, da zahteva vsaj JDK 1.5. Torej, če imamo opravka s starejšo različico, tja ne bo ustrezala. Druga pomanjkljivost knjižnice Jackson je, da ne podpira J2ME.

Primer pretvorbe niza JSON v objekt JSON

V naslednjem programu smo niz JSON pretvorili v 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();>

Poglejmo še en primer.

JsonStringToJsonObjectExample2.java

.enako 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); } } 

Izhod:

 Sam Smith Python