JSON är ett datautbytesformat. Det är ett allmänt använt lätt och språkoberoende format. Den kan konvertera data från JSON till XML. Java tillhandahåller ett stort antal JSON-paket. Med hjälp av dessa paket kan vi hämta eller få värde från JSONObject. Vi har använt de två olika JSON-paketen org.json och org.json.simple . I det här avsnittet kommer vi att lära oss hur man får värden från JSONObject i Java med ett korrekt exempel.
Vad är JSONObject i Java?
I Java , JSONObject är en oordnad samling som innehåller data i form av namn-värde par. Det betecknas som strängen omsluten av ett par lockiga hängslen med kolon mellan namnen och värdena. Dess interna form är ett objekt som måste hämta och sätta metoder för att komma åt värdena med namn och lägga till och ersätta värden med namn.
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
I exemplet ovan, förnamn, stad, och ålder är namn, och John, Florida, och 22 är deras värden.
Java JSONObject Class
Java tillhandahåller klassen JSONObject som är definierad i org.json paket. Det betecknar ett oföränderligt (obestridbart) JSONObject-värde. Objektvärdet är an obeställd grupp av namn-värde par. Den tillhandahåller också Map för att visa JSON-objektets namn-värde-mappning som inte kan ändras. JSONObject-värdena kan vara Boolean, String, Number, JSONObject, JSONArray, JSONNumber, JSONString, etc. Dessa JSONObject-värden kan nås genom att använda de olika motsvarande åtkomstmetoderna.
De skaffa sig() metod returnerar ett värde om den hittas och kastar ett undantag om värdet inte hittas. Medan välja() metod returnerar standardvärdet istället för att kasta undantaget. Värdet kan vara null. Det är den största skillnaden mellan dessa två metoder. Därför är dessa två metoder användbara för att få värdet från JSONObject. Vi kan casta eller fråga ett objekt som returneras av de generiska metoderna get() och opt().
De JSONObject klass innehåller följande metoder som vi kan använda för att hämta värden från JSONObject.
getBoolean() metod
Metoden analyserar ett parameternamn av typen String. Den returnerar ett booleskt värde för den relaterade mappningen för analysens parameter. Den returnerar true om den associerade mappningen är JsonValue.TRUE och returnerar false om den associerade mappningen är JsonValue.FALSE.
urval sortera i java
Syntax:
boolean getBoolean(String name)
Det kastar NullPointerException om det angivna namnet inte har någon mappning. Det kastar också ClassCastException den angivna namnmappningen kan inte tilldelas JsonValue.TRUE eller JsonValue.FALSE.
getInt()-metod
Den används för att få JsonNumber(namn).intValue(). Metoden analyserar ett parameternamn av typen String. Den returnerar ett heltalsvärde för den associerade mappningen för den analyserade parametern.
Syntax:
int getInt(String name)
Det kastar NullPointerException om det angivna namnet inte har någon mappning. Det kastar också ClassCastException den angivna namnmappningen kan inte tilldelas JsonNumber.
getJsonArray() metod
Den används för att få JsonArray get(namn). Metoden analyserar ett argumentnamn av typen String vars associerade värde ska returneras. Den returnerar ett matrisvärde för den associerade mappningen för den analyserade parametern. Den returnerar null om objektet inte har någon mappning för parametern.
Syntax:
JsonArray geJsonArray(String name)
Det kastar ClassCastException den angivna namnmappningen kan inte tilldelas JsonArray.
getJsonNumber() Metod
Den används för att få (JsonNumber)get(namn). Metoden analyserar ett argumentnamn av typen String vars relaterade värde ska returneras. Den returnerar nummervärdet för den associerade mappningen för den analyserade parametern. Den returnerar null om objektet inte har någon mappning för parametern.
bias och varians
Syntax:
JsonNumber geJsonNumber(String name)
Det kastar ClassCastException den angivna namnmappningen kan inte tilldelas JsonNumber.
getJsonObject() Metod
Den används för att få (JsonObject)get(namn). Metoden analyserar ett argumentnamn av typen String vars relaterade värde ska returneras. Den returnerar objektet för den associerade mappningen för parsens parameter. Den returnerar null om objektet inte har någon mappning för parametern.
Syntax:
JsonObject geJsonObject(String name)
Det kastar ClassCastException den angivna namnmappningen kan inte tilldelas JsonObject.
getJsonString() metod
Den används för att få (JsonString)get(namn). Metoden analyserar ett argumentnamn av typen String vars relaterade värde ska returneras. Den returnerar strängvärdet för den associerade mappningen för den analyserade parametern. Den returnerar null om objektet inte har någon mappning för parametern.
Syntax:
linux kommandon
JsonString geJsonString(String name)
Det kastar ClassCastException den angivna namnmappningen kan inte tilldelas JsonString.
getString() metod
Den används för att få getJsonString(namn).getString() . Metoden analyserar ett argumentnamn av typen String vars relaterade värde ska returneras som String. Den returnerar strängvärdet för den associerade mappningen för den analyserade parametern.
Syntax:
String geString(String name)
Det kastar NullPointerException om det angivna namnet inte har någon mappning. Det kastar också ClassCastException den angivna namnmappningen kan inte tilldelas JsonString.
Låt oss skapa ett program och få värde från JSON-objektet genom att använda ovanstående metoder.
Obs: Innan du använder följande kod, ladda ner json-20200518.jar fil och lägg till den i ditt projekt.
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'); } }
Produktion:
Låt oss använda ett annat JSON-bibliotek och hämta värden från JSONObject. I följande program har vi använt json-enkel bibliotek. Innan du använder följande program, ladda ner filen json-simple-1.1.1.jar och lägg till den i ditt projekt.
genomgång av binärt träd i ordning
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); } }
Produktion: