JSON (تدوين كائن JavaScript) هو تنسيق لتبادل البيانات خفيف الوزن يستخدم تنسيق نص مستقل اللغة تمامًا وهو تنسيق مثالي لتبادل البيانات. وفي الوقت نفسه ، JSON هو تنسيق أصلي JavaScript ، مما يعني أنه لا يلزم وجود واجهة برمجة تطبيقات خاصة أو مجموعة أدوات لمعالجة بيانات JSON في JavaScript.
يتم نشر العديد من أدوات البناء والتحليل JSON تحت Java على www.json.org. من بينها ، Org.json و JSON-LIB بسيطة نسبيا. الاثنان متشابهان في الاستخدام ولكن لا يزال هناك بعض الاختلافات. بعد ذلك ، سنقدم مثالًا على طريقة استخدام org.json لإنشاء بيانات JSON وتحليلها.
للحصول على شرح مفصل لطرق بناء وتجميل بيانات JSON باستخدام JSON-LIB ، يرجى الرجوع إلى منشور مدونتي السابق: طريقتان لإنشاء بيانات JSON وتحليلها باستخدام JAVA (شرح مفصل 1)
1. مقدمة
حزمة Org.json هي حزمة أخرى تستخدم لتحويل الفاصوليا والمجموعات والخرائط ومصفوفات Java و XML و JSON. يستخدم بشكل أساسي تحليل بيانات JSON. لديها تفسيرات مفصلة على موقعها الرسمي http://www.json.org/. إذا كنت مهتمًا ، فيمكنك دراستها.
2. قم بتنزيل حزمة التبعية جرة
يمكنك تنزيله هنا
3. مقدمة للطرق الأساسية
نظرًا لأن org.json لا يمكن تحويلها مباشرة إلى الفاصوليا ، يجب تحويلها من خلال الخرائط. للراحة ، كتبت فئة أدوات JsonHelper هنا ، والتي تستخدم لتحويل JSON مع MAP والفاصوليا.
حزمة com.json ؛ استيراد java.lang.reflect.method ؛ استيراد java.text.parseException ؛ استيراد java.util.hashMap ؛ استيراد java.util.iterator إلى javabean* 3: تحويل jsonobject إلى خريطة ، javabean** author Alexia*/public class jsonhelper {/*** تحويل javabean إلى الخريطة** @param javabean* javabean* regurn كائن خريطة*/خريطة ثابتة عامة tomap (كائن javabean) javabean.getClass (). value = method.invoke (javabean ، (object []) خريطة ثابتة tomap (سلسلة jsonstring) يلقي jsonexception {jsonobject jsonobject = new jsonobject (jsonstring) ؛ map result = new hashmap () ؛ iterator iterator = jsonobject.keys () jsonobject.getString (مفتاح) ؛ result.put (المفتاح ، القيمة) ؛} نتيجة الإرجاع ؛}/*** تحويل javabean إلى jsonoBject javabean* param data* map data*/كائن ثابت public tojavabean (كائن javabean ، بيانات الخريطة) {method [] methods = javabean.getClass (). field.substring (field.indexof ("set") + 3) ؛ field = field.tolowercase (). charat (0) + field.substring (1) ؛ method.invoke (javabean ، compour new [] {data.get (field)}) ؛ javabean* regurn json object* throws parseException* json استثناء تحليل* throws jsonexception*/public static void tojavabean (كائن javabean ، سلسلة jsonstring) يلقي ParseException ، jsonexception {jsonobject Tomap (jsonobject.tostring ()) ؛ Tojavabean (Javabean ، Map) ؛}} 4. مثال العرض التوضيحي
فيما يلي بعض الطرق المشتركة الأساسية للاختبار
package com.json ؛ import java.text.parseException ؛ import java.util.arraylist ؛ import java.util.hashmap ؛ import java.util.list ؛ import java.util Data** Author Alexia* date 2013/5/33**/الفئة العامة orgjsontest {/*** إنشاء بيانات json** @return* throws jsonexception*/public static string buildjson () string> map1 = new hashmap <string ، string> () ؛ map1.put ("name" ، "alexia") ؛ map1.put ("sex" ، "female") ؛ map1.put ("age" ، "23") ؛ map <string ، string> map2 = new hashmap <string> ؛ "24") ؛ قائمة <map> list = new ArrayList <map> () ؛ list.add (map1) ؛ list.add (map2) ؛ موظف موظف = موظف جديد () ؛ موظف. jsonarray () ؛ ja.put (map1) ؛ system.out.println ("تنسيق بيانات كائن jsonarray:") ؛ system.out.println (ja.toString ()) الكائن: ") ؛ system.out.println (jo1.toString ()) ؛ // إنشاء بيانات JSON ، بما في ذلك MAP وبيانات JSON التي تحتوي على كائن الموظف jo.put (" map "، ja) ؛ ") ؛ system.out.println (jo.toString ()) ؛ return jo.toString () ؛}/*** data json data** param jsonstring* json data string* athrows jsonexception* throws parseexception*/public static void parsejson (string jsonstring) jsonobject (jsonstring) ؛ jsonarray ja = jo.getjsonarray ("map") ؛ system.out.println ("/n pars json إلى map: العمر: " + ja.getjsonoBject (0) .getInt (" Age ")) ؛ String jsonstr = jo.getString (" exeileceee ") ؛ Employee emp = new efferene () ؛ "الجنس:" + emp.getsex () + "العمر:" + emp.getage ()) ؛}/*** param args* throws jsonexception* throws parseException*/public static void main (string [] args) ؛ نتائج التشغيل كما يلي
5. مقارنة مع JSON-LIB
استخدام JSON-LIB و ORG.JSON هو نفسه تقريبًا. لقد لخصت اختلافين:
1. org.json أخف بكثير من JSON-LIB. السابق لا يعتمد على أي حزم جرة أخرى ، في حين أن الأخير يعتمد على Lang ، وقطع الأشجار ، والفاصوليات ، والمجموعات وغيرها من المكونات من Ezmorph و Commons.
2. JSON-LIB أكثر ملاءمة من ORG.JSON عند بناء الفاصوليا والفاصوليا. يمكن لـ JSON-LIB تحويلها مباشرة بالفاصوليا ، بينما لا يمكن لـ ORG.JSON التحويل مباشرة بالفاصوليا ويتطلب خرائط كعبور. إذا قمت بتحويل الفاصوليا إلى بيانات JSON ، فيجب عليك أولاً تحويل الفاصوليا إلى الخرائط ثم تحويل الخرائط إلى JSON ، والتي تكون أكثر إثارة للقلق.
باختصار ، لا تزال الجملة نفسها هي أفضل شيء بالنسبة لك. يجب على الجميع اختيار الطريقة التي يجب استخدامها لتحليلها حسب الحاجة. أخيرًا ، سأقدم أداتين لتحليل بيانات JSON: أحدهما هو أداة JSON عبر الإنترنت (http://braincast.nl/samples/jsoneditor/) ؛ والآخر هو محلل شجرة eClipse json ، وكلاهما مفيد للغاية ويوصى بهما للجميع لاستخدامه!
ما سبق هو المعرفة ذات الصلة بالطريقتين (التفسير التفصيلي) الذي يستخدمه المحرر لتقديمه لك عن Java لإنشاء بيانات JSON وتحليلها. آمل أن يكون ذلك مفيدًا لك!