logo

Як отримати значення з об’єкта JSON у прикладі Java

JSON це формат обміну даними. Це широко використовуваний легкий і незалежний від мови формат. Він здатний конвертувати дані з JSON в XML. Java надає велику кількість пакетів JSON. За допомогою цих пакетів ми можемо отримати або отримати значення з JSONObject. Ми використали два різні пакети JSON org.json і org.json.simple . У цьому розділі ми дізнаємося як отримати значення з JSONObject у Java з відповідним прикладом.

Що таке JSONObject в Java?

в Java , JSONObject це невпорядкована колекція, яка містить дані у формі ім'я-значення пари. Він позначається як рядок, укладений у пару фігурних дужок із двокрапками між іменами та значеннями. Його внутрішня форма — це об’єкт, який має отримати та розмістити методи для доступу до значень за іменами та додавання та заміни значень за іменами.

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

У наведеному вище прикладі ім'я, місто, і вік є імена, і Джон, Флорида, і 22 є їх значення відповідно.

Клас Java JSONObject

Java надає клас JSONObject, визначений у org.json пакет. Він позначає незмінне (неоскаржуване) значення JSONObject. Значення об’єкта є an невпорядкований група ім'я-значення пари. Він також надає карту для перегляду зіставлення імені й значення об’єкта JSON, яке не можна змінювати. Значення JSONObject можуть бути Boolean, String, Number, JSONObject, JSONArray, JSONNumber, JSONString тощо. Ці значення JSONObject можна отримати за допомогою різних відповідних методів доступу.

The отримати() Метод повертає значення, якщо він знайдено, і створює виняток, якщо значення не знайдено. У той час як opt() метод повертає значення за замовчуванням замість виключення винятку. Значення може бути нульовим. Це головна відмінність між цими двома методами. Отже, ці два методи корисні для отримання значення з JSONObject. Ми можемо привести або запитати об’єкт, повернутий загальними методами get() і opt().

The JSONObject містить такі методи, які ми можемо використовувати для отримання значень з JSONObject.

метод getBoolean().

Метод аналізує назву параметра типу String. Він повертає логічне значення відповідного відображення для параметра аналізу. Він повертає true, якщо пов’язане зіставлення JsonValue.TRUE, і повертає false, якщо пов’язане зіставлення JsonValue.FALSE.

Синтаксис:

 boolean getBoolean(String name) 

Це кидає NullPointerException якщо вказане ім'я не має відображення. Також кидає ClassCastException вказане зіставлення імен не можна призначити JsonValue.TRUE або JsonValue.FALSE.

встановити факел

метод getInt().

Він використовується для отримання JsonNumber(name).intValue(). Метод аналізує назву параметра типу String. Він повертає ціле значення пов’язаного відображення для аналізованого параметра.

Синтаксис:

 int getInt(String name) 

Це кидає NullPointerException якщо вказане ім'я не має відображення. Також кидає ClassCastException вказане зіставлення імені не можна призначити JsonNumber.

Метод getJsonArray().

Використовується для отримання JsonArray get(name). Метод аналізує назву аргументу типу String, пов’язане значення якого має бути повернуто. Він повертає значення масиву пов’язаного відображення для параметра аналізу. Він повертає значення null, якщо об’єкт не має зіставлення для параметра.

Синтаксис:

 JsonArray geJsonArray(String name) 

Це кидає ClassCastException вказане зіставлення імен не можна призначити JsonArray.

Метод getJsonNumber().

Він використовується для отримання (JsonNumber)get(name). Метод аналізує назву аргументу типу String, пов’язане значення якого має бути повернуто. Він повертає числове значення пов’язаного відображення для параметра аналізу. Він повертає значення null, якщо об’єкт не має зіставлення для параметра.

Синтаксис:

 JsonNumber geJsonNumber(String name) 

Це кидає ClassCastException вказане зіставлення імені не можна призначити JsonNumber.

Метод getJsonObject().

Він використовується для отримання (JsonObject)get(name). Метод аналізує назву аргументу типу String, пов’язане значення якого має бути повернуто. Він повертає об’єкт пов’язаного відображення для параметра аналізу. Він повертає значення null, якщо об’єкт не має зіставлення для параметра.

Синтаксис:

 JsonObject geJsonObject(String name) 

Це кидає ClassCastException вказане зіставлення імен не можна призначити JsonObject.

Метод getJsonString().

Він використовується для отримання (JsonString)get(name). Метод аналізує назву аргументу типу String, пов’язане значення якого має бути повернуто. Він повертає рядкове значення пов’язаного відображення для аналізованого параметра. Він повертає значення null, якщо об’єкт не має зіставлення для параметра.

журнал numpy

Синтаксис:

 JsonString geJsonString(String name) 

Це кидає ClassCastException вказане відображення імен не можна призначити JsonString.

Метод getString().

Він використовується для отримання getJsonString(name).getString() . Метод аналізує назву аргументу типу String, пов’язане значення якого має бути повернуто як String. Він повертає рядкове значення пов’язаного відображення для аналізованого параметра.

Синтаксис:

 String geString(String name) 

Це кидає NullPointerException якщо вказане ім'я не має відображення. Також кидає ClassCastException вказане відображення імен не можна призначити JsonString.

Давайте створимо програму та отримаємо значення з об’єкта JSON за допомогою наведених вище методів.

Примітка. Перш ніж використовувати наступний код, завантажте json-20200518.jar файл і додайте його до свого проекту.

Як отримати значення з об’єкта JSON у прикладі 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'); } } 

Вихід:

Як отримати значення з об’єкта JSON у прикладі Java

Давайте використаємо іншу бібліотеку JSON і отримаємо значення з JSONObject. У наступній програмі ми використали json-простий бібліотека. Перш ніж використовувати цю програму, завантажте файл json-simple-1.1.1.jar і додайте його до свого проекту.

Як отримати значення з об’єкта JSON у прикладі 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); } } 

Вихід:

Як отримати значення з об’єкта JSON у прикладі Java