logo

Ako získať hodnotu z objektu JSON v príklade Java

JSON je formát na výmenu údajov. Je to široko používaný odľahčený a jazykovo nezávislý formát. Je schopný konvertovať dáta z JSON do XML. Java poskytuje veľké množstvo balíkov JSON. Pomocou týchto balíčkov môžeme získať resp získať hodnotu z JSONObject. Použili sme dva rôzne balíky JSON org.json a org.json.simple . V tejto časti sa naučíme ako získať hodnoty z JSONObject v jazyku Java so správnym príkladom.

Čo je JSONObject v jazyku Java?

In Java , JSONObject je neusporiadaná kolekcia, ktorá obsahuje údaje vo forme meno-hodnota párov. Označuje sa ako reťazec obalený párom zložených zátvoriek s dvojbodkami medzi menami a hodnotami. Jeho interná forma je objekt, ktorý musí získať a vložiť metódy na prístup k hodnotám podľa názvu a pridávanie a nahrádzanie hodnôt názvom.

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

Vo vyššie uvedenom príklade krstné meno, mesto, a Vek sú mená a John, Florida, a 22 sú ich hodnoty, resp.

Java JSONObject Trieda

Java poskytuje triedu JSONObject, ktorá je definovaná v org.json balík. Označuje nemennú (nenapadnuteľnú) hodnotu JSONObject. Hodnota objektu je an neusporiadané skupina meno-hodnota párov. Poskytuje tiež mapu na zobrazenie mapovania názvu a hodnoty objektu JSON, ktoré je nemeniteľné. Hodnoty JSONObject môžu byť Boolean, reťazec, číslo, JSONObject, JSONArray, JSONNumber, JSONString atď. K týmto hodnotám JSONObject je možné pristupovať pomocou rôznych zodpovedajúcich metód prístupu.

The dostať () metóda vráti hodnotu, ak nájde, a vyvolá výnimku, ak sa hodnota nenájde. Kým opt() metóda vráti predvolenú hodnotu namiesto toho, aby vyvolala výnimku. Hodnota môže byť nulová. To je hlavný rozdiel medzi týmito dvoma metódami. Preto sú tieto dve metódy užitočné na získanie hodnoty z JSONObject. Objekt vrátený generickými metódami get() a opt() môžeme pretypovať alebo dopytovať.

obsahuje podreťazec java

The JSONObject obsahuje nasledujúce metódy, ktoré môžeme použiť na získanie hodnôt z JSONObject.

getBoolean() metóda

Metóda analyzuje názov parametra typu String. Vracia boolovskú hodnotu súvisiaceho mapovania pre parameter analýzy. Vráti hodnotu true, ak je priradené mapovanie JsonValue.TRUE, a vráti hodnotu false, ak je priradené mapovanie JsonValue.FALSE.

Syntax:

 boolean getBoolean(String name) 

To hádže Výnimka NullPointerException ak zadaný názov nemá žiadne mapovanie. Tiež hádže ClassCastException zadané mapovanie názvu nie je možné priradiť k JsonValue.TRUE alebo JsonValue.FALSE.

getInt () metóda

Používa sa na získanie JsonNumber(meno).intValue(). Metóda analyzuje názov parametra typu String. Vráti celočíselnú hodnotu pridruženého mapovania pre analyzovaný parameter.

Syntax:

 int getInt(String name) 

To hádže Výnimka NullPointerException ak zadaný názov nemá žiadne mapovanie. Tiež hádže ClassCastException zadané mapovanie názvu nie je možné priradiť k JsonNumber.

metóda getJsonArray().

Používa sa na získanie JsonArray get(meno). Metóda analyzuje názov argumentu typu String, ktorého priradená hodnota sa má vrátiť. Vráti hodnotu poľa súvisiaceho mapovania pre parameter analýzy. Ak objekt nemá žiadne mapovanie pre parameter, vráti hodnotu null.

Syntax:

 JsonArray geJsonArray(String name) 

To hádže ClassCastException zadané mapovanie názvu nie je možné priradiť k JsonArray.

metóda getJsonNumber().

Používa sa na získanie (JsonNumber)get(meno). Metóda analyzuje názov argumentu typu String, ktorého súvisiaca hodnota sa má vrátiť. Vráti číselnú hodnotu priradeného mapovania pre parameter analýzy. Ak objekt nemá žiadne mapovanie pre parameter, vráti hodnotu null.

Syntax:

 JsonNumber geJsonNumber(String name) 

To hádže ClassCastException zadané mapovanie názvu nie je možné priradiť k JsonNumber.

metóda getJsonObject().

Používa sa na získanie (JsonObject)get(meno). Metóda analyzuje názov argumentu typu String, ktorého súvisiaca hodnota sa má vrátiť. Vráti objekt priradeného mapovania pre parameter analýzy. Ak objekt nemá žiadne mapovanie pre parameter, vráti hodnotu null.

Syntax:

 JsonObject geJsonObject(String name) 

To hádže ClassCastException zadané mapovanie názvu nie je možné priradiť k JsonObject.

metóda getJsonString().

Používa sa na získanie (JsonString)get(meno). Metóda analyzuje názov argumentu typu String, ktorého súvisiaca hodnota sa má vrátiť. Vráti hodnotu reťazca súvisiaceho mapovania pre analyzovaný parameter. Ak objekt nemá žiadne mapovanie pre parameter, vráti hodnotu null.

Syntax:

 JsonString geJsonString(String name) 

To hádže ClassCastException zadané mapovanie názvu nie je možné priradiť k JsonString.

getString() metóda

Používa sa na získanie getJsonString(name).getString() . Metóda analyzuje názov argumentu typu String, ktorého súvisiaca hodnota sa má vrátiť ako String. Vráti hodnotu reťazca súvisiaceho mapovania pre analyzovaný parameter.

Syntax:

 String geString(String name) 

To hádže Výnimka NullPointerException ak zadaný názov nemá žiadne mapovanie. Tiež hádže ClassCastException zadané mapovanie názvu nie je možné priradiť k JsonString.

Vytvorme program a získajme hodnotu z objektu JSON pomocou vyššie uvedených metód.

Poznámka: Pred použitím nasledujúceho kódu stiahnite si súbor json-20200518.jar súbor a pridajte ho do svojho projektu.

Ako získať hodnotu z objektu JSON v príklade 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'); } } 

Výkon:

Ako získať hodnotu z objektu JSON v príklade Java

Použime inú knižnicu JSON a získajme hodnoty z objektu JSONObject. V nasledujúcom programe sme použili json-simple knižnica. Pred použitím nasledujúceho programu si stiahnite súbor json-simple-1.1.1.jar a pridajte ho do svojho projektu.

Ako získať hodnotu z objektu JSON v príklade 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); } } 

Výkon:

Ako získať hodnotu z objektu JSON v príklade Java