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 неподредени група от име-стойност двойки. Той също така предоставя Map за преглед на съпоставянето име-стойност на JSON обект, което не може да се променя. Стойностите на JSONObject могат да бъдат Булева стойност, низ, число, JSONObject, JSONArray, JSONNumber, JSONString и др. Тези JSONObject стойности могат да бъдат достъпни чрез използване на различни съответни методи за достъп.
The получи() метод връща стойност, ако намери и хвърля изключение, ако стойността не е намерена. Докато избирам() методът връща стойността по подразбиране, вместо да хвърля изключението. Стойността може да е нула. Това е основната разлика между тези два метода. Следователно тези два метода са полезни за получаване на стойността от 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(име).intValue(). Методът анализира име на параметър от тип String. Той връща целочислена стойност на свързаното картографиране за анализирания параметър.
Синтаксис:
int getInt(String name)
Хвърля се NullPointerException ако указаното име няма съпоставяне. Освен това хвърля ClassCastException указаното съпоставяне на име не може да се присвои на JsonNumber.
метод getJsonArray().
Използва се за получаване на JsonArray get(име). Методът анализира име на аргумент от тип String, чиято свързана стойност трябва да бъде върната. Той връща стойност на масив от свързаното картографиране за параметъра за анализ. Връща нула, ако обектът няма съпоставяне за параметъра.
java цикли
Синтаксис:
JsonArray geJsonArray(String name)
Хвърля се ClassCastException указаното съпоставяне на имена не може да бъде присвоено на JsonArray.
метод getJsonNumber().
Използва се за получаване на (JsonNumber)get(име). Методът анализира име на аргумент от тип String, чиято свързана стойност трябва да бъде върната. Той връща числовата стойност на свързаното картографиране за параметъра за анализ. Връща нула, ако обектът няма съпоставяне за параметъра.
Синтаксис:
JsonNumber geJsonNumber(String name)
Хвърля се ClassCastException указаното съпоставяне на име не може да се присвои на JsonNumber.
колко mb в gb
метод getJsonObject().
Използва се за получаване на (JsonObject)get(име). Методът анализира име на аргумент от тип String, чиято свързана стойност трябва да бъде върната. Той връща обекта на свързаното картографиране за параметъра на анализа. Връща нула, ако обектът няма съпоставяне за параметъра.
Синтаксис:
JsonObject geJsonObject(String name)
Хвърля се ClassCastException указаното съпоставяне на имена не може да бъде присвоено на JsonObject.
метод getJsonString().
Използва се за получаване на (JsonString)get(име). Методът анализира име на аргумент от тип String, чиято свързана стойност трябва да бъде върната. Той връща стойността на низа на свързаното картографиране за анализирания параметър. Връща нула, ако обектът няма съпоставяне за параметъра.
Синтаксис:
JsonString geJsonString(String name)
Хвърля се ClassCastException указаното съпоставяне на име не може да се присвои на JsonString.
метод getString().
Използва се за получаване на getJsonString(име).getString() . Методът анализира име на аргумент от тип String, чиято свързана стойност трябва да бъде върната като String. Той връща стойността на низа на свързаното картографиране за анализирания параметър.
Синтаксис:
String geString(String name)
Хвърля се NullPointerException ако указаното име няма съпоставяне. Освен това хвърля ClassCastException указаното съпоставяне на име не може да се присвои на JsonString.
Нека създадем програма и да получим стойност от JSON обекта, като използваме горните методи.
Забележка: Преди да използвате следния код, изтеглете json-20200518.jar файл и го добавете към вашия проект.
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 библиотека и да вземем стойности от JSONObject. В следващата програма сме използвали json-прост библиотека. Преди да използвате следната програма, изтеглете файла json-simple-1.1.1.jar и го добавете към вашия проект.
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); } }
Изход: