في الوقت الحاضر، أصبح من الشائع جدًا تلقي البيانات سلسلة جيسون التنسيق بدلاً من XML. عندما نتعامل مع سلسلة JSON في Java، فإنها لا تقوم بتحويل ملف سلسلة جيسون ل كائن جسون . ولكن استخدم سلسلة جيسون دائمًا ليس خيارًا جيدًا لأنه من الصعب التعامل معه. بسبب التغيير والطلب على التكنولوجيا، نحن بحاجة إلى ذلك تحويل سلسلة JSON إلى كائن JSON لاسترجاع القيم. لحل هذه المشكلة هناك بعض المكتبات مفتوحة المصدر التي تسمح لنا بذلك تحويل سلسلة JSON إلى كائن JSON. وقد بينا في هذا الباب كيفية تحويل سلسلة JSON إلى كائن JSON بالتفصيل مع المثال قبل الانتقال إلى الموضوع الرئيسي، دعونا نلقي نظرة على تنسيق JSON.
jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] }
يحتوي تنسيق JSON أعلاه على ست سمات، أول اثنتين منها عبارة عن سلاسل، والثلاثة التالية رقمية وأخيراً مصفوفة JSON.
تحويل سلسلة JSON إلى كائن JSON
هناك المكتبات الثلاث التالية المستخدمة لتحويل String إلى كائن JSON في Java:
- باستخدام مكتبة جيسون
- باستخدام مكتبة JSON البسيطة
- مكتبة جاكسون
باستخدام مكتبة جيسون
Gson هو مفتوح المصدر وغني جافا المكتبة المقدمة من جوجل. يتم استخدامه لتحويل سلسلة JSON إلى كائن JSON مكافئ وكائن JSON إلى سلسلة JSON. يتم استخدام السطر التالي من التعليمات البرمجية لتحويل سلسلة JSON إلى كائن JSON.
Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class)
يمكننا أيضًا تحويل كائن JSON إلى سلسلة JSON باستخدام ملف toJson() طريقة.
String str = g.toJson(p);
باستخدام مكتبة JSON البسيطة
إنها مكتبة Java أخرى مفتوحة المصدر تستخدم لتحويل سلسلة JSON إلى كائن JSON. ميزة مكتبة JSON-Simple هي صغر حجمها. إنه مثالي عندما تكون بيئة تقييد الذاكرة مهمة. لاحظ أنه متوافق أيضًا مع JDK 1.2. هذا يعني أنه يمكننا استخدامه مع مشروع قديم غير موجود في Java 5. نستخدم العبارات التالية لتحويل سلسلة JSON إلى كائن JSON.
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse);
باستخدام مكتبة جاكسون
مكتبة جاكسون هي مكتبة Java فعالة ومستخدمة على نطاق واسع لتعيين كائنات Java إلى JSON والعكس. إنه غني بالميزات وسريع الأداء ويدعم البث أيضًا. يمكن للتدفق تحليل مخرجات JSON كبيرة من خدمات الويب دون تحميلها بالكامل في الذاكرة. تقوم العبارة التالية بتحويل سلسلة JSON التي تمثل الطالب إلى فئة Java تمثل الطالب.
Student student = new ObjectMapper().readValue(jsonString, Student.class);
عيب مكتبة جاكسون هو أنها تتطلب JDK 1.5 على الأقل. لذلك، إذا كنا نتعامل مع إصدار أقدم، فلن يصلح هناك. عيب آخر لمكتبة جاكسون هو أنها لا تدعم J2ME.
سلسلة JSON إلى مثال لتحويل كائن JSON
في البرنامج التالي، قمنا بتحويل سلسلة JSON إلى كائن JSON.
JsonStringToJsonObjectExample.java
import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = '[{'No':'17','Name':'Andrew'},{'No':'18','Name':'Peter'}, {'No':'19','Name':'Tom'}]'; JSONArray array = new JSONArray(str); for(int i=0; i <array.length(); i++) { jsonobject object="array.getJSONObject(i);" system.out.println(object.getstring('no')); system.out.println(object.getstring('name')); } < pre> <p> <strong>Output:</strong> </p> <pre> 17 Andrew 18 Peter 19 Tom </pre> <p>Let's see another example.</p> <p> <strong>JsonStringToJsonObjectExample2.java</strong> </p> <pre> import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>
دعونا نرى مثالا آخر.
JsonStringToJsonObjectExample2.java
الكلمة الأساسية النهائية في جافا
import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } }
انتاج:
Sam Smith Python