JSON bir veri değişim formatıdır. Yaygın olarak kullanılan hafif ve dilden bağımsız bir formattır. Verileri JSON'dan XML'e dönüştürebilir. Java çok sayıda JSON paketi sağlar. Bu paketlerin yardımıyla geri alabilir veya JSONObject'ten değer alın. İki farklı JSON paketini kullandık org.json Ve org.json.simple . Bu bölümde öğreneceğiz Uygun bir örnekle Java'da JSONObject'ten değerlerin nasıl alınacağı.
Java'da JSONObject nedir?
İçinde Java , JSONObject şeklinde veri içeren sırasız bir koleksiyondur. ad-değer çiftler. Adlar ve değerler arasında iki nokta üst üste bulunan bir çift süslü parantez içine alınmış dize olarak gösterilir. İç formu, değerlere ada göre erişmek ve değerleri ada göre eklemek ve değiştirmek için yöntemler almak ve koymak zorunda olan bir nesnedir.
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
Yukarıdaki örnekte, ad, şehir, Ve yaş isimlerdir ve John, Florida'da, Ve 22 sırasıyla değerleridir.
Java JSONObject Sınıfı
Java, içinde tanımlanan JSONObject sınıfını sağlar. org.json paket. Değişmez (tartışılamaz) bir JSONObject değerini belirtir. Nesne değeri bir sırasız grubu ad-değer çiftler. Ayrıca, değiştirilemeyen JSON nesnesi adı-değer eşlemesini görüntülemek için Harita'yı da sağlar. JSONObject değerleri şunlar olabilir: Boolean, String, Number, JSONObject, JSONArray, JSONNumber, JSONString vb. Bu JSONObject değerlerine, karşılık gelen çeşitli erişimci yöntemleri kullanılarak erişilebilir.
elde etmek() yöntem bulursa bir değer döndürür ve değer bulunamazsa bir istisna atar. iken tercih() yöntem, istisnayı atmak yerine varsayılan değeri döndürür. Değer null olabilir. Bu iki yöntem arasındaki temel fark budur. Dolayısıyla bu iki yöntem JSONObject'ten değer almak için kullanışlıdır. Get() ve opt() genel yöntemleri tarafından döndürülen bir nesneyi yayınlayabilir veya sorgulayabiliriz.
JSONObject sınıfı JSONObject'ten değer almak için kullanabileceğimiz aşağıdaki yöntemleri içerir.
getBoolean() Yöntem
Yöntem, String türündeki bir parametre adını ayrıştırır. Ayrıştırma parametresi için ilgili eşlemenin Boolean değerini döndürür. İlişkili eşleme JsonValue.TRUE ise true değerini döndürür ve ilişkili eşleme JsonValue.FALSE ise false değerini döndürür.
Sözdizimi:
boolean getBoolean(String name)
Fırlatıyor NullPointerException belirtilen adın eşlemesi yoksa. Ayrıca atar ClassCastException belirtilen ad eşlemesi JsonValue.TRUE veya JsonValue.FALSE'ye atanamaz.
getInt()Yöntemi
Almak için kullanılır JsonNumber(name).intValue(). Yöntem, String türündeki bir parametre adını ayrıştırır. Ayrıştırılan parametre için ilişkili eşlemenin tamsayı değerini döndürür.
Sözdizimi:
int getInt(String name)
Fırlatıyor NullPointerException belirtilen adın eşlemesi yoksa. Ayrıca atar ClassCastException belirtilen ad eşlemesi JsonNumber'a atanamaz.
getJsonArray() Yöntem
Almak için kullanılır JsonArray get(isim). Yöntem, ilişkili değeri döndürülecek olan String türündeki bir bağımsız değişken adını ayrıştırır. Parseed parametresi için ilişkili eşlemenin dizi değerini döndürür. Nesnenin parametre için eşlemesi yoksa null değerini döndürür.
Sözdizimi:
java'da dizeye eşittir
JsonArray geJsonArray(String name)
Fırlatıyor ClassCastException belirtilen ad eşlemesi JsonArray'e atanamaz.
getJsonNumber() Yöntem
Almak için kullanılır (JsonNumber)get(isim). Yöntem, ilgili değeri döndürülecek olan String türündeki bir bağımsız değişken adını ayrıştırır. Ayrıştırılmış parametre için ilişkili eşlemenin sayı değerini döndürür. Nesnenin parametre için eşlemesi yoksa null değerini döndürür.
Sözdizimi:
JsonNumber geJsonNumber(String name)
Fırlatıyor ClassCastException belirtilen ad eşlemesi JsonNumber'a atanamaz.
getJsonObject() Yöntem
Almak için kullanılır (JsonObject)get(isim). Yöntem, ilgili değeri döndürülecek olan String türündeki bir bağımsız değişken adını ayrıştırır. Ayrıştırmanın parametresi için ilişkili eşlemenin nesnesini döndürür. Nesnenin parametre için eşlemesi yoksa null değerini döndürür.
Sözdizimi:
JsonObject geJsonObject(String name)
Fırlatıyor ClassCastException belirtilen ad eşlemesi JsonObject'e atanamaz.
java çoklu iş parçacığı
getJsonString() Yöntem
Almak için kullanılır (JsonString)get(isim). Yöntem, ilgili değeri döndürülecek olan String türündeki bir bağımsız değişken adını ayrıştırır. Ayrıştırılan parametre için ilişkili eşlemenin String değerini döndürür. Nesnenin parametre için eşlemesi yoksa null değerini döndürür.
Sözdizimi:
JsonString geJsonString(String name)
Fırlatıyor ClassCastException belirtilen ad eşlemesi JsonString'e atanamaz.
getString() Yöntem
Almak için kullanılır getJsonString(name).getString() . Yöntem, ilgili değeri String olarak döndürülecek olan String türünde bir bağımsız değişken adını ayrıştırır. Ayrıştırılan parametre için ilişkili eşlemenin String değerini döndürür.
Sözdizimi:
String geString(String name)
Fırlatıyor NullPointerException belirtilen adın eşlemesi yoksa. Ayrıca atar ClassCastException belirtilen ad eşlemesi JsonString'e atanamaz.
Yukarıdaki yöntemleri kullanarak bir program oluşturalım ve JSON nesnesinden değer alalım.
Not: Aşağıdaki kodu kullanmadan önce, json-20200518.jar dosyasını indirin dosyalayın ve projenize ekleyin.
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'); } }
Çıktı:
Başka bir JSON kütüphanesi kullanalım ve JSONObject'ten değerler alalım. Aşağıdaki programda kullanmış olduğumuz json-basit kütüphane. Aşağıdaki programı kullanmadan önce json-simple-1.1.1.jar dosyasını indirip projenize ekleyin.
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); } }
Çıktı: