JSON هو تنسيق تبادل البيانات. وهو تنسيق خفيف الوزن ومستقل عن اللغة يستخدم على نطاق واسع. إنه قادر على تحويل البيانات من JSON إلى XML. توفر Java عددًا كبيرًا من حزم JSON. بمساعدة هذه الحزم، يمكننا استرداد أو الحصول على القيمة من JSONObject. لقد استخدمنا حزمتي JSON المختلفتين org.json و org.json.simple . في هذا القسم سوف نتعلم كيفية الحصول على القيم من JSONObject في Java مع المثال المناسب.
ما هو JSONObject في جافا؟
في جافا , JSONObject عبارة عن مجموعة غير مرتبة تحتوي على بيانات في شكل قيمة الاسم أزواج. يُشار إليه على أنه سلسلة محاطة بزوج من الأقواس المتعرجة مع وجود نقطتين بين الأسماء والقيم. شكله الداخلي عبارة عن كائن يحتاج إلى الحصول على طرق ووضعها للوصول إلى القيم بالاسم وإضافة القيم واستبدالها بالاسم.
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
في المثال أعلاه، المدينة, الاسم الأول, و عمر هي أسماء، و جون، فلوريدا، و 22 هي قيمهم، على التوالي.
فئة جافا JSONObject
توفر Java فئة JSONObject المحددة في ملف org.json طَرد. يشير إلى قيمة JSONObject غير قابلة للتغيير (غير قابلة للتحدي). قيمة الكائن هي غير مرتبة مجموعة من قيمة الاسم أزواج. كما يوفر أيضًا خريطة لعرض تعيين قيمة اسم كائن JSON غير القابل للتعديل. يمكن أن تكون قيم JSONObject منطقية، سلسلة، رقم، JSONObject، JSONArray، JSONNumber، JSONString، إلخ. يمكن الوصول إلى قيم JSONObject هذه باستخدام طرق الوصول المختلفة المقابلة.
mylivecricket في لعبة الكريكيت الحية
ال يحصل() تقوم الطريقة بإرجاع قيمة إذا تم العثور عليها وطرح استثناءً إذا لم يتم العثور على القيمة. بينما ال يختار، يقرر() تقوم الطريقة بإرجاع القيمة الافتراضية بدلاً من طرح الاستثناء. قد تكون القيمة فارغة. هذا هو الفرق الرئيسي بين هاتين الطريقتين. ومن ثم، فإن هاتين الطريقتين مفيدتان للحصول على القيمة من JSONObject. يمكننا إرسال كائن أو الاستعلام عنه عن طريق الطرق العامة get() و opt().
ال JSONObject تحتوي الفئة على الطرق التالية التي يمكننا استخدامها للحصول على قيم من JSONObject.
طريقة getBoolean()
تقوم الطريقة بتوزيع اسم معلمة من النوع String. تقوم بإرجاع قيمة منطقية للتعيين ذي الصلة لمعلمة التحليل. يتم إرجاعه صحيحًا إذا كان التعيين المرتبط هو JsonValue.TRUE ويعيد خطأ إذا كان التعيين المرتبط هو JsonValue.FALSE.
بناء الجملة:
boolean getBoolean(String name)
يرمي NullPointerException إذا كان الاسم المحدد لا يحتوي على تعيين. ويرمي أيضا ClassCastException تعيين الاسم المحدد غير قابل للتعيين إلى JsonValue.TRUE أو JsonValue.FALSE.
طريقة الحصول على Int()
يتم استخدامه للحصول على JsonNumber(name).intValue(). تقوم الطريقة بتوزيع اسم معلمة من النوع String. تقوم بإرجاع قيمة عددية للتعيين المرتبط بالمعلمة التي تم تحليلها.
بناء الجملة:
supw
int getInt(String name)
يرمي NullPointerException إذا كان الاسم المحدد لا يحتوي على تعيين. ويرمي أيضا ClassCastException تعيين الاسم المحدد غير قابل للتخصيص لـ JsonNumber.
طريقة getJsonArray()
يتم استخدامه للحصول على الحصول على JsonArray (الاسم). تقوم الطريقة بتوزيع اسم وسيطة من النوع String الذي سيتم إرجاع القيمة المرتبطة به. تقوم بإرجاع قيمة صفيف للتعيين المرتبط بالمعلمة المحللة. تُرجع قيمة فارغة إذا لم يكن لدى الكائن أي تعيين للمعلمة.
بناء الجملة:
JsonArray geJsonArray(String name)
يرمي ClassCastException تعيين الاسم المحدد غير قابل للتخصيص لـ JsonArray.
طريقة getJsonNumber()
يتم استخدامه للحصول على (JsonNumber) احصل على (الاسم). تقوم الطريقة بتوزيع اسم وسيطة من النوع String الذي سيتم إرجاع قيمته ذات الصلة. تقوم بإرجاع القيمة الرقمية للتعيين المرتبط بالمعلمة المحللة. يتم إرجاعه فارغًا إذا لم يكن لدى الكائن أي تعيين للمعلمة.
التطبيع في قاعدة البيانات
بناء الجملة:
JsonNumber geJsonNumber(String name)
يرمي ClassCastException تعيين الاسم المحدد غير قابل للتخصيص لـ JsonNumber.
طريقة getJsonObject()
يتم استخدامه للحصول على (JsonObject)احصل على (الاسم). تقوم الطريقة بتوزيع اسم وسيطة من النوع String الذي سيتم إرجاع قيمته ذات الصلة. تقوم بإرجاع كائن التعيين المرتبط لمعلمة التحليل. تُرجع قيمة فارغة إذا لم يكن لدى الكائن أي تعيين للمعلمة.
بناء الجملة:
JsonObject geJsonObject(String name)
يرمي ClassCastException تعيين الاسم المحدد غير قابل للتخصيص لـ JsonObject.
طريقة getJsonString ().
يتم استخدامه للحصول على (JsonString) احصل على (الاسم). تقوم الطريقة بتوزيع اسم وسيطة من النوع String الذي سيتم إرجاع قيمته ذات الصلة. تقوم بإرجاع قيمة السلسلة الخاصة بالتعيين المرتبط بالمعلمة التي تم تحليلها. يتم إرجاعه فارغًا إذا لم يكن لدى الكائن أي تعيين للمعلمة.
بناء الجملة:
رد الفعل الجدول
JsonString geJsonString(String name)
يرمي ClassCastException تعيين الاسم المحدد غير قابل للتخصيص لـ JsonString.
طريقة getString ().
يتم استخدامه للحصول على getJsonString(name).getString() . تقوم الطريقة بتوزيع اسم وسيطة من النوع String الذي سيتم إرجاع قيمته ذات الصلة كسلسلة. تقوم بإرجاع قيمة السلسلة الخاصة بالتعيين المرتبط بالمعلمة التي تم تحليلها.
بناء الجملة:
المتغير المرجعي في جافا
String geString(String name)
يرمي NullPointerException إذا كان الاسم المحدد لا يحتوي على تعيين. ويرمي أيضا ClassCastException تعيين الاسم المحدد غير قابل للتخصيص لـ JsonString.
لنقم بإنشاء برنامج والحصول على قيمة من كائن JSON باستخدام الطرق المذكورة أعلاه.
ملاحظة: قبل استخدام الكود التالي، قم بتنزيل json-20200518.jar الملف وإضافته إلى مشروعك.
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'); } }
انتاج:
دعونا نستخدم مكتبة JSON أخرى ونحصل على القيم من JSONObject. في البرنامج التالي استخدمنا json-simple مكتبة. قبل استخدام البرنامج التالي، قم بتنزيل ملف json-simple-1.1.1.jar وأضفه إلى مشروعك.
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); } }
انتاج: