logo

Kā pārvērst virkni par JSON objektu Java?

Mūsdienās datu saņemšana ir ļoti izplatīta JSON virkne formātā XML vietā. Kad mēs strādājam ar JSON virkni Java, tā nepārvērš JSON virkne uz JSON objekts . Bet izmantojiet JSON virkne vienmēr nav labs risinājums, jo ar to ir grūti tikt galā. Tehnoloģiju izmaiņu un pieprasījuma dēļ mums tas ir nepieciešams konvertēt JSON virkni par JSON objektu lai izgūtu vērtības. Lai atrisinātu šo problēmu, ir dažas atvērtā pirmkoda bibliotēkas, kas ļauj to darīt konvertēt JSON virkni par JSON objektu. Šajā sadaļā mēs esam paskaidrojuši kā pārveidot JSON virkni par JSON objektu sīkāk ar piemēru. Pirms pāriet uz galveno tēmu, apskatīsim JSON formātu.

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

Iepriekš minētajā JSON formātā ir seši atribūti, no kuriem pirmie divi ir virknes, nākamie trīs ir skaitļi un visbeidzot JSON masīvs.

Konvertējiet JSON virkni par JSON objektu

Lai pārvērstu virkni par JSON objektu Java, tiek izmantotas šādas trīs bibliotēkas:

  • Izmantojot Gson bibliotēku
  • JSON Simple Library izmantošana
  • Džeksona bibliotēka

Izmantojot Gson bibliotēku

Gson ir atvērtā koda un bagāts Java Google nodrošinātā bibliotēka. To izmanto, lai pārveidotu JSON virkni par līdzvērtīgu JSON objektu un JSON objektu par JSON virkni. Tālāk norādītā koda rindiņa tiek izmantota, lai pārveidotu JSON virkni par JSON objektu.

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

Mēs varam arī pārveidot JSON objektu par JSON virkni, izmantojot toJson() metodi.

 String str = g.toJson(p); 

JSON Simple Library izmantošana

Tā ir vēl viena atvērtā pirmkoda Java bibliotēka, ko izmanto JSON virknes konvertēšanai par JSON objektu. JSON-Simple bibliotēkas priekšrocība ir tās mazais izmērs. Tas ir lieliski piemērots, ja atmiņas ierobežojuma vide ir svarīga. Ņemiet vērā, ka tas ir saderīgs arī ar JDK 1.2. Tas nozīmē, ka mēs varam to izmantot mantotā projektā, kas nav Java 5. Mēs izmantojam šādus paziņojumus, lai pārveidotu JSON virkni par JSON objektu.

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

Džeksona bibliotēkas izmantošana

Džeksona bibliotēka ir efektīva un plaši izmantota Java bibliotēka, lai kartētu Java objektus uz JSON un otrādi. Tā ir bagāta ar funkcijām, ātra veiktspēja, kā arī atbalsta straumēšanu. Straume var parsēt lielu JSON izvadi no tīmekļa pakalpojumiem, neielādējot to pilnībā atmiņā. Šis paziņojums pārvērš JSON virkni, kas pārstāv studentu, par Java klasi, kas pārstāv studentu.

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

Džeksona bibliotēkas trūkums ir tāds, ka tai ir nepieciešama vismaz JDK 1.5. Tāpēc, ja mums ir darīšana ar vecāku versiju, tā tur neiederēsies. Vēl viens Džeksona bibliotēkas trūkums ir tas, ka tā neatbalsta J2ME.

JSON virknes uz JSON objektu pārveidošanas piemērs

Nākamajā programmā mēs esam konvertējuši JSON virkni uz JSON objektu.

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

Apskatīsim citu piemēru.

JsonStringToJsonObjectExample2.java

sql vairāku tabulu atlase
 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); } } 

Izvade:

 Sam Smith Python