JSON is een formaat voor gegevensuitwisseling. Het is een veelgebruikt lichtgewicht en taalonafhankelijk formaat. Het is in staat om gegevens van JSON naar XML te converteren. Java biedt een groot aantal JSON-pakketten. Met behulp van deze pakketten kunnen we ophalen of waarde ophalen uit JSONObject. We hebben de twee verschillende JSON-pakketten gebruikt org.json En org.json.simple . In dit gedeelte zullen we leren hoe u waarden uit JSONObject in Java kunt krijgen met een goed voorbeeld.
Wat is JSONObject in Java?
In Java , JSONObject is een ongeordende verzameling die gegevens bevat in de vorm van naam-waarde paren. Het wordt aangegeven als de string omgeven door een paar accolades met dubbele punten tussen de namen en waarden. De interne vorm ervan is een object dat methoden moet ophalen en plaatsen om toegang te krijgen tot de waarden op naam en waarden op naam toe te voegen en te vervangen.
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
In het bovenstaande voorbeeld voornaam, stad, En leeftijd zijn namen, en Johannes, Florida, En 22 zijn respectievelijk hun waarden.
wat is een Linux-bestandssysteem
Java JSONObject-klasse
Java biedt de JSONObject-klasse die is gedefinieerd in de org.json pakket. Het duidt een onveranderlijke (onbetwistbare) JSONObject-waarde aan. De objectwaarde is een ongeordend groep van naam-waarde paren. Het biedt ook Map om de JSON-objectnaam-waarde-toewijzing te bekijken die niet kan worden gewijzigd. De JSONObject-waarden kunnen zijn Boolean, String, Number, JSONObject, JSONArray, JSONNumber, JSONString, enz. Deze JSONObject-waarden zijn toegankelijk met behulp van de verschillende overeenkomstige accessormethoden.
De krijgen() method retourneert een waarde als deze wordt gevonden en genereert een uitzondering als de waarde niet wordt gevonden. Terwijl de opteren() method retourneert de standaardwaarde in plaats van de uitzondering te genereren. De waarde kan nul zijn. Het is het belangrijkste verschil tussen deze twee methoden. Daarom zijn deze twee methoden nuttig om de waarde van het JSONObject te verkrijgen. We kunnen een object casten of bevragen dat wordt geretourneerd door de generieke methoden get() en opt().
De JSONObject class bevat de volgende methoden die we kunnen gebruiken om waarden uit het JSONObject te halen.
getBoolean()-methode
De methode parseert een parameternaam van het type String. Het retourneert een Booleaanse waarde van de gerelateerde toewijzing voor de parameter van de parse. Het retourneert waar als de bijbehorende toewijzing JsonValue.TRUE is en retourneert false als de bijbehorende toewijzing JsonValue.FALSE is.
Syntaxis:
boolean getBoolean(String name)
Het gooit NullPointerException als de opgegeven naam geen toewijzing heeft. Het gooit ook ClassCastException de opgegeven naamtoewijzing kan niet worden toegewezen aan JsonValue.TRUE of JsonValue.FALSE.
getInt()Method
Het wordt gebruikt om de JsonNumber(naam).intWaarde(). De methode parseert een parameternaam van het type String. Het retourneert een geheel getal van de bijbehorende toewijzing voor de geparseerde parameter.
Syntaxis:
int getInt(String name)
Het gooit NullPointerException als de opgegeven naam geen toewijzing heeft. Het gooit ook ClassCastException de opgegeven naamtoewijzing kan niet worden toegewezen aan JsonNumber.
bouwer ontwerppatroon
getJsonArray()-methode
Het wordt gebruikt om de JsonArray get(naam). De methode ontleedt een argumentnaam van het type String waarvan de bijbehorende waarde moet worden geretourneerd. Het retourneert een arraywaarde van de bijbehorende toewijzing voor de parseparameter. Het retourneert null als het object geen toewijzing voor de parameter heeft.
Syntaxis:
JsonArray geJsonArray(String name)
Het gooit ClassCastException de opgegeven naamtoewijzing kan niet worden toegewezen aan JsonArray.
getJsonNumber()-methode
Het wordt gebruikt om de (JsonNumber)get(naam). De methode ontleedt een argumentnaam van het type String waarvan de gerelateerde waarde moet worden geretourneerd. Het retourneert de getalswaarde van de bijbehorende toewijzing voor de parseparameter. Het retourneert null als het object geen toewijzing voor de parameter heeft.
Syntaxis:
JsonNumber geJsonNumber(String name)
Het gooit ClassCastException de opgegeven naamtoewijzing kan niet worden toegewezen aan JsonNumber.
getJsonObject()-methode
Het wordt gebruikt om de (JsonObject)get(naam). De methode ontleedt een argumentnaam van het type String waarvan de gerelateerde waarde moet worden geretourneerd. Het retourneert het object van de bijbehorende toewijzing voor de parameter van de parse. Het retourneert null als het object geen toewijzing voor de parameter heeft.
privé versus openbaar Java
Syntaxis:
JsonObject geJsonObject(String name)
Het gooit ClassCastException de opgegeven naamtoewijzing kan niet worden toegewezen aan JsonObject.
getJsonString()-methode
Het wordt gebruikt om de (JsonString)get(naam). De methode ontleedt een argumentnaam van het type String waarvan de gerelateerde waarde moet worden geretourneerd. Het retourneert de tekenreekswaarde van de bijbehorende toewijzing voor de geparseerde parameter. Het retourneert null als het object geen toewijzing voor de parameter heeft.
Syntaxis:
JsonString geJsonString(String name)
Het gooit ClassCastException de opgegeven naamtoewijzing kan niet worden toegewezen aan JsonString.
getString()-methode
Het wordt gebruikt om de getJsonString(naam).getString() . De methode ontleedt een argumentnaam van het type String waarvan de gerelateerde waarde moet worden geretourneerd als String. Het retourneert de tekenreekswaarde van de bijbehorende toewijzing voor de geparseerde parameter.
Syntaxis:
String geString(String name)
Het gooit NullPointerException als de opgegeven naam geen toewijzing heeft. Het gooit ook ClassCastException de opgegeven naamtoewijzing kan niet worden toegewezen aan JsonString.
Laten we een programma maken en waarde uit het JSON-object halen met behulp van de bovenstaande methoden.
Opmerking: voordat u de volgende code gebruikt, download de json-20200518.jar bestand en voeg het toe aan uw project.
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'); } }
Uitgang:
Laten we een andere JSON-bibliotheek gebruiken en waarden ophalen uit het JSONObject. In het volgende programma hebben we de json-eenvoudig bibliotheek. Voordat u het volgende programma gebruikt, downloadt u het json-simple-1.1.1.jar-bestand en voegt u het toe aan uw project.
hashset-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); } }
Uitgang: