JSON és un format d'intercanvi de dades. És un format lleuger molt utilitzat i independent de l'idioma. És capaç de convertir dades de JSON a XML. Java proporciona un gran nombre de paquets JSON. Amb l'ajuda d'aquests paquets, podem recuperar o obtenir valor de JSONObject. Hem utilitzat els dos paquets JSON diferents org.json i org.json.simple . En aquest apartat, aprendrem com obtenir valors de JSONObject a Java amb un exemple adequat.
polimorfisme en java
Què és JSONObject a Java?
En Java , JSONObject és una col·lecció no ordenada que conté dades en forma de nom-valor parells. Es denota com la cadena envoltada en un parell de claus amb dos punts entre els noms i els valors. La seva forma interna és un objecte que ha d'obtenir i posar mètodes per accedir als valors pel nom i afegir i substituir valors pel nom.
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
En l'exemple anterior, nom, ciutat, i edat són noms, i John, Florida, i 22 són els seus valors, respectivament.
Classe Java JSONObject
Java proporciona la classe JSONObject que es defineix al fitxer org.json paquet. Indica un valor JSONObject immutable (inqüestionable). El valor de l'objecte és an sense ordenar grup de nom-valor parells. També proporciona Map per veure l'assignació de nom-valor de l'objecte JSON que no es pot modificar. Els valors de JSONObject poden ser Boolean, String, Number, JSONObject, JSONArray, JSONNumber, JSONString, etc. Es pot accedir a aquests valors JSONObject mitjançant els diferents mètodes d'accés corresponents.
El aconseguir() El mètode retorna un valor si el troba i llança una excepció si el valor no es troba. Mentre que optar () El mètode retorna el valor predeterminat en lloc de llançar l'excepció. El valor pot ser nul. És la principal diferència entre aquests dos mètodes. Per tant, aquests dos mètodes són útils per obtenir el valor del JSONObject. Podem emetre o consultar un objecte retornat pels mètodes genèrics get() i opt().
El JSONObject class conté els mètodes següents que podem utilitzar per obtenir valors del JSONObject.
getBoolean() mètode
El mètode analitza un nom de paràmetre de tipus String. Retorna un valor booleà de l'assignació relacionada per al paràmetre de l'anàlisi. Retorna true si l'assignació associada és JsonValue.TRUE i retorna false si l'assignació associada és JsonValue.FALSE.
Sintaxi:
igualtat d'objectes java
boolean getBoolean(String name)
Es tira NullPointerException si el nom especificat no té mapes. També llença ClassCastException l'assignació de nom especificada no es pot assignar a JsonValue.TRUE o JsonValue.FALSE.
getInt()Mètode
S'utilitza per obtenir el JsonNumber(nom).intValue(). El mètode analitza un nom de paràmetre de tipus String. Retorna un valor enter de l'assignació associada per al paràmetre analitzat.
Sintaxi:
int getInt(String name)
Es tira NullPointerException si el nom especificat no té mapes. També llença ClassCastException l'assignació de nom especificada no es pot assignar a JsonNumber.
getJsonArray() Mètode
S'utilitza per obtenir el JsonArray get(nom). El mètode analitza un nom d'argument del tipus String el valor associat del qual s'ha de retornar. Retorna un valor de matriu de l'assignació associada per al paràmetre analitzat. Retorna null si l'objecte no té mapeig per al paràmetre.
longitud de la cadena bash
Sintaxi:
JsonArray geJsonArray(String name)
Es tira ClassCastException l'assignació de nom especificada no es pot assignar a JsonArray.
getJsonNumber() Mètode
S'utilitza per obtenir el (JsonNumber)get(nom). El mètode analitza un nom d'argument del tipus String el valor relacionat del qual s'ha de retornar. Retorna el valor numèric de l'assignació associada per al paràmetre analitzat. Retorna null si l'objecte no té mapeig per al paràmetre.
Sintaxi:
JsonNumber geJsonNumber(String name)
Es tira ClassCastException l'assignació de nom especificada no es pot assignar a JsonNumber.
getJsonObject() Mètode
S'utilitza per obtenir el (JsonObject)get(nom). El mètode analitza un nom d'argument del tipus String el valor relacionat del qual s'ha de retornar. Retorna l'objecte del mapeig associat per al paràmetre de l'anàlisi. Retorna null si l'objecte no té mapeig per al paràmetre.
Sintaxi:
JsonObject geJsonObject(String name)
Es tira ClassCastException l'assignació de nom especificada no es pot assignar a JsonObject.
getJsonString() Mètode
S'utilitza per obtenir el (JsonString) get (nom). El mètode analitza un nom d'argument del tipus String el valor relacionat del qual s'ha de retornar. Retorna el valor String de l'assignació associada per al paràmetre analitzat. Retorna null si l'objecte no té mapeig per al paràmetre.
Sintaxi:
estructures de dades java
JsonString geJsonString(String name)
Es tira ClassCastException l'assignació de nom especificada no es pot assignar a JsonString.
getString() Mètode
S'utilitza per obtenir el getJsonString(nom).getString() . El mètode analitza un nom d'argument del tipus String el valor relacionat del qual s'ha de retornar com a String. Retorna el valor String de l'assignació associada per al paràmetre analitzat.
Sintaxi:
String geString(String name)
Es tira NullPointerException si el nom especificat no té mapes. També llença ClassCastException l'assignació de nom especificada no es pot assignar a JsonString.
Creem un programa i obtenim valor de l'objecte JSON mitjançant els mètodes anteriors.
Nota: abans d'utilitzar el codi següent, descarregueu el fitxer json-20200518.jar fitxer i afegiu-lo al vostre projecte.
GetValueFromJsonExample.java
matriu java ordenada
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'); } }
Sortida:
Utilitzem una altra biblioteca JSON i obtenim valors del JSONObject. En el programa següent, hem utilitzat el json-simple biblioteca. Abans d'utilitzar el programa següent, descarregueu el fitxer json-simple-1.1.1.jar i afegiu-lo al vostre projecte.
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); } }
Sortida: