logo

Cum să obțineți valoare de la obiectul JSON în exemplu Java

JSON este un format de schimb de date. Este un format ușor utilizat pe scară largă și independent de limbă. Este capabil să convertească datele din JSON în XML. Java oferă un număr mare de pachete JSON. Cu ajutorul acestor pachete, putem prelua sau obțineți valoare de la JSONObject. Am folosit cele două pachete JSON diferite org.json și org.json.simple . În această secțiune, vom învăța cum să obțineți valori de la JSONObject în Java cu un exemplu adecvat.

Ce este JSONObject în Java?

În Java , JSONObject este o colecție neordonată care conține date sub formă de nume-valoare perechi. Este notat ca șirul învăluit într-o pereche de acolade cu două puncte între nume și valori. Forma sa internă este un obiect care trebuie să obțină și să pună metode pentru accesarea valorilor după nume și adăugarea și înlocuirea valorilor după nume.

 { 'first name': 'John', 'city': 'Florida', 'age': '22' }, 

În exemplul de mai sus, prenume, oraș, și vârstă sunt nume și John, Florida, și 22 sunt valorile lor, respectiv.

Clasa Java JSONObject

Java furnizează clasa JSONObject care este definită în org.json pachet. Indică o valoare JSONObject imuabilă (incontestabilă). Valoarea obiectului este an neordonate grup de nume-valoare perechi. De asemenea, oferă Map pentru a vizualiza maparea nume-valoare a obiectului JSON care este nemodificabilă. Valorile JSONObject pot fi Boolean, String, Number, JSONObject, JSONArray, JSONNumber, JSONString etc. Aceste valori JSONObject pot fi accesate folosind diferitele metode de accesorii corespunzătoare.

The obține() metoda returnează o valoare dacă găsește și aruncă o excepție dacă valoarea nu este găsită. In timp ce opta() metoda returnează valoarea implicită în loc să arunce excepția. Valoarea poate fi nulă. Este principala diferență dintre aceste două metode. Prin urmare, aceste două metode sunt utile pentru a obține valoarea din JSONObject. Putem arunca sau interoga un obiect returnat prin metodele generice get() și opt().

The JSONObject clasa conține următoarele metode pe care le putem folosi pentru a obține valori din JSONObject.

Metoda getBoolean().

Metoda parsează un nume de parametru de tip String. Returnează o valoare booleană a maparii asociate pentru parametrul analizei. Returnează adevărat dacă maparea asociată este JsonValue.TRUE și returnează false dacă maparea asociată este JsonValue.FALSE.

Sintaxă:

 boolean getBoolean(String name) 

Aruncă NullPointerException dacă numele specificat nu are mapare. De asemenea, aruncă ClassCastException maparea numelui specificată nu poate fi atribuită la JsonValue.TRUE sau JsonValue.FALSE.

getInt()Metoda

Este folosit pentru a obține JsonNumber(nume).intValue(). Metoda parsează un nume de parametru de tip String. Returnează o valoare întreagă a maparii asociate pentru parametrul analizat.

Sintaxă:

 int getInt(String name) 

Aruncă NullPointerException dacă numele specificat nu are mapare. De asemenea, aruncă ClassCastException maparea numelui specificată nu poate fi atribuită lui JsonNumber.

Metoda getJsonArray().

Este folosit pentru a obține JsonArray get(nume). Metoda parsează un nume de argument de tip String a cărui valoare asociată urmează să fie returnată. Returnează o valoare de matrice a maparii asociate pentru parametrul analizat. Returnează null dacă obiectul nu are mapare pentru parametru.

Sintaxă:

 JsonArray geJsonArray(String name) 

Aruncă ClassCastException maparea numelui specificată nu poate fi atribuită lui JsonArray.

Metoda getJsonNumber().

Este folosit pentru a obține (JsonNumber)get(nume). Metoda parsează un nume de argument de tip String a cărui valoare aferentă trebuie returnată. Returnează valoarea numerică a mapării asociate pentru parametrul analizat. Returnează null dacă obiectul nu are mapare pentru parametru.

Sintaxă:

 JsonNumber geJsonNumber(String name) 

Aruncă ClassCastException maparea numelui specificată nu poate fi atribuită lui JsonNumber.

Metoda getJsonObject().

Este folosit pentru a obține (JsonObject)get(nume). Metoda parsează un nume de argument de tip String a cărui valoare aferentă trebuie returnată. Returnează obiectul mapării asociate pentru parametrul analizei. Returnează null dacă obiectul nu are mapare pentru parametru.

Sintaxă:

 JsonObject geJsonObject(String name) 

Aruncă ClassCastException maparea numelui specificată nu poate fi atribuită lui JsonObject.

Metoda getJsonString().

Este folosit pentru a obține (JsonString)get(nume). Metoda parsează un nume de argument de tip String a cărui valoare aferentă trebuie returnată. Returnează valoarea String a mapării asociate pentru parametrul analizat. Returnează null dacă obiectul nu are mapare pentru parametru.

Sintaxă:

matrice de șiruri
 JsonString geJsonString(String name) 

Aruncă ClassCastException maparea numelui specificată nu poate fi atribuită lui JsonString.

Metoda getString().

Este folosit pentru a obține getJsonString(nume).getString() . Metoda parsează un nume de argument de tip String a cărui valoare asociată trebuie returnată ca șir. Returnează valoarea String a mapării asociate pentru parametrul analizat.

Sintaxă:

 String geString(String name) 

Aruncă NullPointerException dacă numele specificat nu are mapare. De asemenea, aruncă ClassCastException maparea numelui specificată nu poate fi atribuită lui JsonString.

Să creăm un program și să obținem valoare din obiectul JSON utilizând metodele de mai sus.

Notă: Înainte de a utiliza următorul cod, descărcați json-20200518.jar fișier și adăugați-l la proiectul dvs.

Cum să obțineți valoare de la obiectul JSON în exemplu Java

GetValueFromJsonExample.java

 import org.json.*; public class GetValueFromJsonExample { public static void main(String[] args) throws JSONException { //constructor of the JSONObject class JSONObject obj = new JSONObject( '{' + 'Employee ID: 092789,' + 'Employee Name: Helen Mirren,' + 'Age: 27, ' + 'Designation: Assistant Manager,' + 'City: Florida,' + 'Salary: 67000.00, ' + 'Experience: 26 ' + '}' ); //getting values form the JSONObject System.out.println('Employee ID: '+obj.getInt('Employee ID')); System.out.println('Employee Name: '+obj.getString('Employee Name')); System.out.println('Age: '+obj.getInt('Age')); System.out.println('Designation: '+obj.getString('Designation')); System.out.println('City: '+obj.getString('City')); System.out.println('Salary: '+obj.getDouble('Salary')); System.out.println('Experience: '+obj.getInt('Experience') +' Months'); } } 

Ieșire:

Cum să obțineți valoare de la obiectul JSON în exemplu Java

Să folosim o altă bibliotecă JSON și să obținem valori din JSONObject. În programul următor, am folosit json-simplu bibliotecă. Înainte de a utiliza următorul program, descărcați fișierul json-simple-1.1.1.jar și adăugați-l în proiect.

Cum să obțineți valoare de la obiectul JSON în exemplu Java

GetValueFromJsonObjectExample.java

 import org.json.simple.JSONObject; import org.json.simple.JSONValue; public class GetValueFromJsonObjectExample { public static void main(String[] args) { //defining a JSON string String s='{'name':'William Hill','Salary':67000.0,'age':42}'; Object obj=JSONValue.parse(s); //creating an object of JSONObject class and casting the object into JSONObject type JSONObject jsonObject = (JSONObject) obj; //getting values form the JSONObject and casting that values into corresponding types String name = (String) jsonObject.get('name'); double salary = (Double) jsonObject.get('Salary'); long age = (Long) jsonObject.get('age'); //printing the values System.out.println('Name: '+name); System.out.println('Salary: '+salary); System.out.println('Age: '+age); } } 

Ieșire:

Cum să obțineți valoare de la obiectul JSON în exemplu Java