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 = '[{'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();>
Poglejmo še en primer.
JsonStringToJsonObjectExample2.java
.enako java
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); } }
Izhod:
Sam Smith Python