logo

Cum se convertesc șirul în obiect JSON în Java?

În zilele noastre, este foarte comun să primiți date în Șir JSON format în loc de XML. Când avem de-a face cu JSON String în Java, acesta nu convertește Șir JSON la Obiect JSON . Dar folosește Șir JSON întotdeauna nu este o opțiune bună pentru că este dificil să o faci. Datorită schimbării și cererii tehnologiei, avem nevoie convertiți șirul JSON în obiect JSON pentru a prelua valori. pentru a rezolva această problemă există câteva biblioteci open-source care ne permit convertiți șirul JSON în obiect JSON. În această secțiune, am explicat cum să convertiți șirul JSON în obiect JSON în detaliu cu exemplu. Înainte de a trece la subiectul principal, să aruncăm o privire asupra formatului JSON.

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

Formatul JSON de mai sus conține șase atribute, dintre care primele două sunt șiruri, următoarele trei sunt numerice și, în sfârșit, o matrice JSON.

Convertiți șirul JSON în obiect JSON

Următoarele trei biblioteci sunt folosite pentru a converti String în obiect JSON în Java:

  • Folosind Biblioteca Gson
  • Folosind JSON-Simple Library
  • Biblioteca Jackson

Folosind Biblioteca Gson

Gson este un open-source și bogat Java bibliotecă oferită de Google. Este folosit pentru a converti șirul JSON în obiect JSON echivalent și obiectul JSON în șirul JSON. Următoarea linie de cod este utilizată pentru a converti șirul JSON în obiect JSON.

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

De asemenea, putem converti obiectul JSON în șir JSON utilizând toJson() metodă.

 String str = g.toJson(p); 

Folosind JSON-Simple Library

Este o altă bibliotecă Java open-source folosită pentru conversia șirului JSON în obiect JSON. Avantajul bibliotecii JSON-Simple este dimensiunea sa mică. Este perfect acolo unde mediul de constrângere a memoriei este important. Rețineți că este compatibil și cu JDK 1.2. Înseamnă că îl putem folosi cu un proiect moștenit care nu este în Java 5. Folosim următoarele instrucțiuni pentru a converti șirul JSON în obiect JSON.

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

Folosind Biblioteca Jackson

Biblioteca Jackson este o bibliotecă Java eficientă și utilizată pe scară largă pentru a mapa obiectele Java la JSON și viceversa. Este bogat în funcții, rapid în performanță și, de asemenea, acceptă streaming. Fluxul poate analiza o ieșire JSON mare de la serviciile web fără a o încărca complet în memorie. Următoarea instrucțiune transformă șirul JSON care reprezintă un student într-o clasă Java care reprezintă studentul.

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

Dezavantajul bibliotecii Jackson este că necesită cel puțin JDK 1.5. Prin urmare, dacă avem de-a face cu o versiune mai veche, aceasta nu se va potrivi acolo. Un alt dezavantaj al bibliotecii Jackson este că nu acceptă J2ME.

Exemplu de conversie JSON șir în obiect JSON

În următorul program, am convertit un șir JSON în obiect 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();>

Să vedem un alt exemplu.

JsonStringToJsonObjectExample2.java

Madhubala
 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); } } 

Ieșire:

 Sam Smith Python