JSON es un formato de intercambio de datos. Es un formato ligero e independiente del idioma ampliamente utilizado. Es capaz de convertir datos de JSON a XML. Java proporciona una gran cantidad de paquetes JSON. Con la ayuda de estos paquetes, podemos recuperar o obtener valor de JSONObject. Hemos utilizado los dos paquetes JSON diferentes. org.json y org.json.simple . En esta sección aprenderemos cómo obtener valores de JSONObject en Java con un ejemplo adecuado.
¿Qué es JSONObject en Java?
En Java , Objeto JSON es una colección desordenada que contiene datos en forma de nombre-valor pares. Se denota como la cadena envuelta en un par de llaves con dos puntos entre los nombres y valores. Su forma interna es un objeto que tiene que obtener y colocar métodos para acceder a los valores por nombre y agregar y reemplazar valores por nombre.
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
En el ejemplo anterior, nombre, ciudad, y edad son nombres, y Juan, Florida, y 22 son sus valores, respectivamente.
Clase de objeto JSON de Java
Java proporciona la clase JSONObject que se define en el org.json paquete. Denota un valor JSONObject inmutable (indiscutible). El valor del objeto es un desordenado grupo de nombre-valor pares. También proporciona Map para ver la asignación de nombre-valor del objeto JSON que no se puede modificar. Los valores de JSONObject pueden ser Booleano, Cadena, Número, JSONObject, JSONArray, JSONNumber, JSONString, etc. Se puede acceder a estos valores JSONObject utilizando los distintos métodos de acceso correspondientes.
El conseguir() El método devuelve un valor si lo encuentra y arroja una excepción si no se encuentra el valor. Mientras que la optar() El método devuelve el valor predeterminado en lugar de generar la excepción. El valor puede ser nulo. Es la principal diferencia entre estos dos métodos. Por lo tanto, estos dos métodos son útiles para obtener el valor de JSONObject. Podemos emitir o consultar un objeto devuelto por los métodos genéricos get() y opt().
El Objeto JSON La clase contiene los siguientes métodos que podemos usar para obtener valores de JSONObject.
miflixr
Método getBoolean()
El método analiza un nombre de parámetro de tipo String. Devuelve un valor booleano de la asignación relacionada para el parámetro del análisis. Devuelve verdadero si la asignación asociada es JsonValue.TRUE y devuelve falso si la asignación asociada es JsonValue.FALSE.
Sintaxis:
boolean getBoolean(String name)
arroja Excepción de puntero nulo si el nombre especificado no tiene asignación. tambien tira Excepción ClassCast la asignación de nombres especificada no se puede asignar a JsonValue.TRUE o JsonValue.FALSE.
getInt()Método
Se utiliza para conseguir el JsonNumber(nombre).intValue(). El método analiza un nombre de parámetro de tipo String. Devuelve un valor entero de la asignación asociada para el parámetro analizado.
Sintaxis:
fusionar ordenación java
int getInt(String name)
arroja Excepción de puntero nulo si el nombre especificado no tiene asignación. tambien tira Excepción ClassCast la asignación de nombres especificada no se puede asignar a JsonNumber.
Método getJsonArray()
Se utiliza para conseguir el JsonArray obtiene (nombre). El método analiza un nombre de argumento de tipo Cadena cuyo valor asociado se va a devolver. Devuelve un valor de matriz de la asignación asociada para el parámetro analizado. Devuelve nulo si el objeto no tiene ninguna asignación para el parámetro.
Sintaxis:
JsonArray geJsonArray(String name)
arroja Excepción ClassCast la asignación de nombre especificada no se puede asignar a JsonArray.
Método getJsonNumber()
Se utiliza para conseguir el (JsonNumber)obtener(nombre). El método analiza un nombre de argumento de tipo Cadena cuyo valor relacionado se va a devolver. Devuelve el valor numérico de la asignación asociada para el parámetro analizado. Devuelve nulo si el objeto no tiene ninguna asignación para el parámetro.
si y si no en bash
Sintaxis:
JsonNumber geJsonNumber(String name)
arroja Excepción ClassCast la asignación de nombres especificada no se puede asignar a JsonNumber.
Método getJsonObject()
Se utiliza para conseguir el (JsonObject)obtener(nombre). El método analiza un nombre de argumento de tipo Cadena cuyo valor relacionado se va a devolver. Devuelve el objeto del mapeo asociado para el parámetro del análisis. Devuelve nulo si el objeto no tiene ninguna asignación para el parámetro.
Sintaxis:
JsonObject geJsonObject(String name)
arroja Excepción ClassCast la asignación de nombre especificada no se puede asignar a JsonObject.
altura de kat timpf
Método getJsonString()
Se utiliza para conseguir el (JsonString)obtener(nombre). El método analiza un nombre de argumento de tipo Cadena cuyo valor relacionado se va a devolver. Devuelve el valor de cadena de la asignación asociada para el parámetro analizado. Devuelve nulo si el objeto no tiene ninguna asignación para el parámetro.
Sintaxis:
JsonString geJsonString(String name)
arroja Excepción ClassCast la asignación de nombre especificada no se puede asignar a JsonString.
Método getString()
Se utiliza para conseguir el getJsonString(nombre).getString() . El método analiza un nombre de argumento de tipo Cadena cuyo valor relacionado se devolverá como Cadena. Devuelve el valor de cadena de la asignación asociada para el parámetro analizado.
Sintaxis:
cómo ordenar una lista de matrices en java
String geString(String name)
arroja Excepción de puntero nulo si el nombre especificado no tiene asignación. tambien tira Excepción ClassCast la asignación de nombre especificada no se puede asignar a JsonString.
Creemos un programa y obtengamos valor del objeto JSON utilizando los métodos anteriores.
Nota: Antes de usar el siguiente código, descarga el json-20200518.jar archivo y agréguelo a su proyecto.
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'); } }
Producción:
Usemos otra biblioteca JSON y obtengamos valores de JSONObject. En el siguiente programa hemos utilizado el json-simple biblioteca. Antes de usar el siguiente programa, descargue el archivo json-simple-1.1.1.jar y agréguelo a su proyecto.
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); } }
Producción: