logo

Come ottenere valore dall'oggetto JSON nell'esempio Java

JSON è un formato di scambio dati. È un formato leggero e indipendente dalla lingua ampiamente utilizzato. È in grado di convertire dati da JSON a XML. Java fornisce un gran numero di pacchetti JSON. Con l'aiuto di questi pacchetti, possiamo recuperare o ottenere valore da JSONObject. Abbiamo utilizzato i due diversi pacchetti JSON org.json E org.json.simple . In questa sezione impareremo come ottenere valori da JSONObject in Java con un esempio corretto.

Cos'è JSONObject in Java?

In Giava , JSONOggetto è una raccolta non ordinata che contiene dati sotto forma di nome-valore coppie. È indicato come la stringa racchiusa in una coppia di parentesi graffe con due punti tra i nomi e i valori. La sua forma interna è un oggetto che deve ottenere e inserire metodi per accedere ai valori per nome e aggiungere e sostituire valori per nome.

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

Nell'esempio sopra, nome, città, E età sono nomi e Giovanni, Florida, E 22 sono i loro valori, rispettivamente.

Classe Java JSONObject

Java fornisce la classe JSONObject definita nel file org.json pacchetto. Denota un valore JSONObject immutabile (incontestabile). Il valore dell'oggetto è an non ordinato gruppo di nome-valore coppie. Fornisce inoltre Map per visualizzare la mappatura nome-valore dell'oggetto JSON che non è modificabile. I valori JSONObject possono essere Booleano, Stringa, Numero, JSONObject, JSONArray, JSONNumber, JSONString e così via. È possibile accedere a questi valori JSONObject utilizzando i vari metodi di accesso corrispondenti.

IL Ottenere() Il metodo restituisce un valore se trova e genera un'eccezione se il valore non viene trovato. Mentre il optare() Il metodo restituisce il valore predefinito invece di lanciare l'eccezione. Il valore potrebbe essere nullo. È la differenza principale tra questi due metodi. Pertanto, questi due metodi sono utili per ottenere il valore da JSONObject. Possiamo lanciare o interrogare un oggetto restituito dai metodi generici get() e opt().

IL JSONOggetto contiene i seguenti metodi che possiamo utilizzare per ottenere valori da JSONObject.

metodo getBoolean()

Il metodo analizza un nome di parametro di tipo String. Restituisce un valore booleano della mappatura correlata per il parametro dell'analisi. Restituisce true se la mappatura associata è JsonValue.TRUE e restituisce false se la mappatura associata è JsonValue.FALSE.

Sintassi:

 boolean getBoolean(String name) 

Lancia NullPointerException se il nome specificato non ha mappatura. Lancia anche ClassCastException la mappatura dei nomi specificata non è assegnabile a JsonValue.TRUE o JsonValue.FALSE.

metodo getInt()

Viene utilizzato per ottenere il JsonNumber(nome).intValue(). Il metodo analizza un nome di parametro di tipo String. Restituisce un valore intero della mappatura associata per il parametro analizzato.

Sintassi:

 int getInt(String name) 

Lancia NullPointerException se il nome specificato non ha mappatura. Lancia anche ClassCastException la mappatura del nome specificata non è assegnabile a JsonNumber.

Metodo getJsonArray()

Viene utilizzato per ottenere il JsonArray get(nome). Il metodo analizza un nome di argomento di tipo String il cui valore associato deve essere restituito. Restituisce un valore di matrice della mappatura associata per il parametro analizzato. Restituisce null se l'oggetto non ha mappatura per il parametro.

matrice di stringhe

Sintassi:

 JsonArray geJsonArray(String name) 

Lancia ClassCastException la mappatura dei nomi specificata non è assegnabile a JsonArray.

metodo getJsonNumber()

Viene utilizzato per ottenere il (JsonNumber)get(nome). Il metodo analizza un nome di argomento di tipo String il cui valore correlato deve essere restituito. Restituisce il valore numerico della mappatura associata per il parametro analizzato. Restituisce null se l'oggetto non ha mappatura per il parametro.

Sintassi:

 JsonNumber geJsonNumber(String name) 

Lancia ClassCastException la mappatura del nome specificata non è assegnabile a JsonNumber.

algebra booleana della legge distributiva

Metodo getJsonObject()

Viene utilizzato per ottenere il (JsonObject)get(nome). Il metodo analizza un nome di argomento di tipo String il cui valore correlato deve essere restituito. Restituisce l'oggetto della mappatura associata per il parametro dell'analisi. Restituisce null se l'oggetto non ha mappatura per il parametro.

Sintassi:

 JsonObject geJsonObject(String name) 

Lancia ClassCastException la mappatura dei nomi specificata non è assegnabile a JsonObject.

Metodo getJsonString()

Viene utilizzato per ottenere il (JsonString)get(nome). Il metodo analizza un nome di argomento di tipo String il cui valore correlato deve essere restituito. Restituisce il valore String della mappatura associata per il parametro analizzato. Restituisce null se l'oggetto non ha mappatura per il parametro.

Sintassi:

 JsonString geJsonString(String name) 

Lancia ClassCastException la mappatura del nome specificata non è assegnabile a JsonString.

metodo getString()

Viene utilizzato per ottenere il getJsonString(nome).getString() . Il metodo analizza un nome di argomento di tipo String il cui valore correlato deve essere restituito come String. Restituisce il valore String della mappatura associata per il parametro analizzato.

Sintassi:

 String geString(String name) 

Lancia NullPointerException se il nome specificato non ha mappatura. Lancia anche ClassCastException la mappatura del nome specificata non è assegnabile a JsonString.

Creiamo un programma e otteniamo valore dall'oggetto JSON utilizzando i metodi sopra.

Nota: prima di utilizzare il seguente codice, scaricare json-20200518.jar file e aggiungilo al tuo progetto.

Come ottenere valore dall'oggetto JSON nell'esempio 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'); } } 

Produzione:

Come ottenere valore dall'oggetto JSON nell'esempio Java

Usiamo un'altra libreria JSON e otteniamo valori da JSONObject. Nel seguente programma, abbiamo utilizzato il file json-semplice biblioteca. Prima di utilizzare il seguente programma, scarica il file json-simple-1.1.1.jar e aggiungilo al tuo progetto.

Come ottenere valore dall'oggetto JSON nell'esempio 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); } } 

Produzione:

Come ottenere valore dall'oggetto JSON nell'esempio Java