JSON é um formato de intercâmbio de dados. É um formato leve e independente de idioma amplamente utilizado. É capaz de converter dados de JSON para XML. Java fornece um grande número de pacotes JSON. Com a ajuda desses pacotes, podemos recuperar ou obter valor de JSONObject. Usamos os dois pacotes JSON diferentes org.json e org.json.simple . Nesta seção, aprenderemos como obter valores de JSONObject em Java com um exemplo adequado.
O que é JSONObject em Java?
Em Java , JSONObject é uma coleção não ordenada que contém dados na forma de nome-valor pares. É denotado como a string envolvida por um par de chaves com dois pontos entre os nomes e valores. Sua forma interna é um objeto que possui métodos get e put para acessar os valores por nome e adicionar e substituir valores por nome.
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
No exemplo acima, nome, cidade, e idade são nomes e João, Flórida, e 22 são seus valores, respectivamente.
Classe Java JSONObject
Java fornece a classe JSONObject definida no arquivo org.json pacote. Denota um valor JSONObject imutável (incontestável). O valor do objeto é um não ordenado grupo de nome-valor pares. Ele também fornece Mapa para visualizar o mapeamento nome-valor do objeto JSON que não pode ser modificado. Os valores JSONObject podem ser Booleano, String, Número, JSONObject, JSONArray, JSONNumber, JSONString, etc. Esses valores JSONObject podem ser acessados usando vários métodos de acesso correspondentes.
O pegar() O método retorna um valor se for encontrado e lança uma exceção se o valor não for encontrado. Enquanto o optar() método retorna o valor padrão em vez de lançar a exceção. O valor pode ser nulo. É a principal diferença entre esses dois métodos. Portanto, esses dois métodos são úteis para obter o valor do JSONObject. Podemos lançar ou consultar um objeto retornado pelos métodos genéricos get() e opt().
O JSONObject classe contém os seguintes métodos que podemos usar para obter valores do JSONObject.
bash para loop
Método getBoolean()
O método analisa um nome de parâmetro do tipo String. Ele retorna um valor booleano do mapeamento relacionado para o parâmetro de análise. Ele retorna verdadeiro se o mapeamento associado for JsonValue.TRUE e retorna falso se o mapeamento associado for JsonValue.FALSE.
Sintaxe:
boolean getBoolean(String name)
Isso joga Null Pointer Exception se o nome especificado não tiver mapeamento. Também joga ClassCastException o mapeamento de nome especificado não pode ser atribuído a JsonValue.TRUE ou JsonValue.FALSE.
Método getInt()
É usado para obter o JsonNumber(nome).intValue(). O método analisa um nome de parâmetro do tipo String. Retorna um valor inteiro do mapeamento associado ao parâmetro analisado.
Sintaxe:
o que torna um pc rápido
int getInt(String name)
Isso joga Null Pointer Exception se o nome especificado não tiver mapeamento. Também joga ClassCastException o mapeamento de nome especificado não pode ser atribuído a JsonNumber.
Método getJsonArray()
É usado para obter o JsonArray obtém(nome). O método analisa um nome de argumento do tipo String cujo valor associado deve ser retornado. Ele retorna um valor de matriz do mapeamento associado para o parâmetro analisado. Retorna nulo se o objeto não tiver mapeamento para o parâmetro.
Sintaxe:
JsonArray geJsonArray(String name)
Isso joga ClassCastException o mapeamento de nome especificado não pode ser atribuído a JsonArray.
Método getJsonNumber()
É usado para obter o (JsonNumber)get(nome). O método analisa um nome de argumento do tipo String cujo valor relacionado deve ser retornado. Ele retorna o valor numérico do mapeamento associado para o parâmetro analisado. Retorna nulo se o objeto não tiver mapeamento para o parâmetro.
abrir menu de configurações
Sintaxe:
JsonNumber geJsonNumber(String name)
Isso joga ClassCastException o mapeamento de nome especificado não pode ser atribuído a JsonNumber.
Método getJsonObject()
É usado para obter o (JsonObject)get(nome). O método analisa um nome de argumento do tipo String cujo valor relacionado deve ser retornado. Retorna o objeto do mapeamento associado para o parâmetro de análise. Retorna nulo se o objeto não tiver mapeamento para o parâmetro.
Sintaxe:
JsonObject geJsonObject(String name)
Isso joga ClassCastException o mapeamento de nome especificado não pode ser atribuído a JsonObject.
matriz de strings em c
Método getJsonString()
É usado para obter o (JsonString)get(nome). O método analisa um nome de argumento do tipo String cujo valor relacionado deve ser retornado. Ele retorna o valor String do mapeamento associado ao parâmetro analisado. Retorna nulo se o objeto não tiver mapeamento para o parâmetro.
Sintaxe:
JsonString geJsonString(String name)
Isso joga ClassCastException o mapeamento de nome especificado não pode ser atribuído a JsonString.
Método getString()
É usado para obter o getJsonString(nome).getString() . O método analisa um nome de argumento do tipo String cujo valor relacionado deve ser retornado como String. Ele retorna o valor String do mapeamento associado ao parâmetro analisado.
Sintaxe:
sabe
String geString(String name)
Isso joga Null Pointer Exception se o nome especificado não tiver mapeamento. Também joga ClassCastException o mapeamento de nome especificado não pode ser atribuído a JsonString.
Vamos criar um programa e obter valor do objeto JSON usando os métodos acima.
Nota: Antes de usar o código a seguir, baixe o json-20200518.jar arquivo e adicione-o ao seu projeto.
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'); } }
Saída:
Vamos usar outra biblioteca JSON e obter valores do JSONObject. No programa a seguir, usamos o json-simples biblioteca. Antes de usar o programa a seguir, baixe o arquivo json-simple-1.1.1.jar e adicione-o ao seu projeto.
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); } }
Saída: