JSON est un format d'échange de données. Il s’agit d’un format léger et indépendant de la langue largement utilisé. Il est capable de convertir des données de JSON en XML. Java fournit un grand nombre de packages JSON. Avec l'aide de ces packages, nous pouvons récupérer ou obtenir la valeur de JSONObject. Nous avons utilisé les deux packages JSON différents org.json et org.json.simple . Dans cette section, nous apprendrons comment obtenir des valeurs de JSONObject en Java avec un exemple approprié.
Qu’est-ce que JSONObject en Java ?
Dans Java , Objet JSON est une collection non ordonnée qui contient des données sous forme de nom-valeur paires. Il est désigné par la chaîne enveloppée dans une paire d'accolades avec des deux-points entre les noms et les valeurs. Sa forme interne est un objet devant récupérer et mettre des méthodes pour accéder aux valeurs par nom et ajouter et remplacer des valeurs par nom.
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
Dans l'exemple ci-dessus, prénom, ville, et âge sont des noms, et John, Floride, et 22 sont leurs valeurs, respectivement.
Classe Java JSONObject
Java fournit la classe JSONObject définie dans le org.json emballer. Il désigne une valeur JSONObject immuable (incontestable). La valeur de l'objet est un non ordonné groupe de nom-valeur paires. Il fournit également Map pour afficher le mappage nom-valeur de l'objet JSON qui n'est pas modifiable. Les valeurs JSONObject peuvent être Booléen, Chaîne, Nombre, JSONObject, JSONArray, JSONNumber, JSONString, etc. Ces valeurs JSONObject sont accessibles à l'aide des différentes méthodes d'accès correspondantes.
Le obtenir() La méthode renvoie une valeur si elle trouve et lève une exception si la valeur est introuvable. Tandis que le opter() La méthode renvoie la valeur par défaut au lieu de lever l’exception. La valeur peut être nulle. C'est la principale différence entre ces deux méthodes. Par conséquent, ces deux méthodes sont utiles pour obtenir la valeur du JSONObject. Nous pouvons caster ou interroger un objet renvoyé par les méthodes génériques get() et opt().
Le Objet JSON La classe contient les méthodes suivantes que nous pouvons utiliser pour obtenir les valeurs du JSONObject.
Méthode getBoolean()
La méthode analyse un nom de paramètre de type String. Il renvoie une valeur booléenne du mappage associé pour le paramètre d'analyse. Il renvoie vrai si le mappage associé est JsonValue.TRUE et renvoie faux si le mappage associé est JsonValue.FALSE.
Syntaxe:
boolean getBoolean(String name)
Ça jette NullPointerException si le nom spécifié n'a pas de mappage. Il jette aussi ClassCastException le mappage de nom spécifié ne peut pas être attribué à JsonValue.TRUE ou JsonValue.FALSE.
méthode getInt()
Il est utilisé pour obtenir le JsonNumber(nom).intValue(). La méthode analyse un nom de paramètre de type String. Il renvoie une valeur entière du mappage associé pour le paramètre analysé.
Syntaxe:
int getInt(String name)
Ça jette NullPointerException si le nom spécifié n'a pas de mappage. Il jette aussi ClassCastException le mappage de nom spécifié ne peut pas être attribué à JsonNumber.
schéma du modèle e-r
Méthode getJsonArray()
Il est utilisé pour obtenir le JsonArray obtient (nom). La méthode analyse un nom d'argument de type String dont la valeur associée doit être renvoyée. Il renvoie une valeur de tableau du mappage associé pour le paramètre parseed. Il renvoie null si l'objet n'a pas de mappage pour le paramètre.
Syntaxe:
JsonArray geJsonArray(String name)
Ça jette ClassCastException le mappage de nom spécifié ne peut pas être attribué à JsonArray.
Méthode getJsonNumber()
Il est utilisé pour obtenir le (JsonNumber)get(nom). La méthode analyse un nom d'argument de type String dont la valeur associée doit être renvoyée. Il renvoie la valeur numérique du mappage associé pour le paramètre analysé. Il renvoie null si l'objet n'a pas de mappage pour le paramètre.
Syntaxe:
JsonNumber geJsonNumber(String name)
Ça jette ClassCastException le mappage de nom spécifié ne peut pas être attribué à JsonNumber.
Méthode getJsonObject()
Il est utilisé pour obtenir le (JsonObject)get(nom). La méthode analyse un nom d'argument de type String dont la valeur associée doit être renvoyée. Il renvoie l'objet du mappage associé au paramètre d'analyse. Il renvoie null si l'objet n'a pas de mappage pour le paramètre.
Syntaxe:
JsonObject geJsonObject(String name)
Ça jette ClassCastException le mappage de nom spécifié ne peut pas être attribué à JsonObject.
Méthode getJsonString()
Il est utilisé pour obtenir le (JsonString)get(nom). La méthode analyse un nom d'argument de type String dont la valeur associée doit être renvoyée. Il renvoie la valeur String du mappage associé pour le paramètre analysé. Il renvoie null si l'objet n'a pas de mappage pour le paramètre.
Syntaxe:
JsonString geJsonString(String name)
Ça jette ClassCastException le mappage de nom spécifié ne peut pas être attribué à JsonString.
Méthode getString()
Il est utilisé pour obtenir le getJsonString(nom).getString() . La méthode analyse un nom d'argument de type String dont la valeur associée doit être renvoyée sous forme de String. Il renvoie la valeur String du mappage associé pour le paramètre analysé.
Syntaxe:
String geString(String name)
Ça jette NullPointerException si le nom spécifié n'a pas de mappage. Il jette aussi ClassCastException le mappage de nom spécifié ne peut pas être attribué à JsonString.
Créons un programme et obtenons la valeur de l'objet JSON en utilisant les méthodes ci-dessus.
Remarque : Avant d'utiliser le code suivant, téléchargez le json-20200518.jar fichier et ajoutez-le à votre projet.
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'); } }
Sortir:
Utilisons une autre bibliothèque JSON et obtenons les valeurs du JSONObject. Dans le programme suivant, nous avons utilisé le json-simple bibliothèque. Avant d'utiliser le programme suivant, téléchargez le fichier json-simple-1.1.1.jar et ajoutez-le à votre projet.
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); } }
Sortir: