1. مقدمة إلى JSON
JSON (تدوين كائن JavaScript) ، على غرار XML ، هو تنسيق تبادل البيانات. على سبيل المثال ، إذا قام Java بإنشاء بيانات إلى JavaScript ، بالإضافة إلى استخدام XML ، يمكنك أيضًا استخدام JSON ؛
ميزة JSON على XML هي أنه من السهل جدًا التعبير ؛ الموقع الرسمي: http://www.json.org/
JSON هو X في Ajax (أي ، يمكن أن يحل محل XML) ؛ ------ من مؤسس JSON ؛
ملاحظة: JSON ليس تنسيق مستند ، لا توجد وثائق *. بشكل عام ، تم العثور على مستندات تنسيق JSON في TXT ، ويمكن أن تكون XML معيارًا ؛
محرر json عبر الإنترنت: http://tools.vevb.com/tools/json/json_editor.htm
2. بنية بيانات JSON
لدى JSON هيكلين بيانات:
(1) الخريطة ، المعروفة أيضًا باسم الكائن ؛ {......}
(2) صفيف. [......]
وهذا يعني ، يجب تمثيل جميع كائنات JSON في هذه الأشكال ؛
1. الخريطة
ببساطة ، إنها خريطة في جافا. يتم إعطاء زوج قيمة الاسم ، ويتم فصل الاسم والقيمة بواسطة ":" ويتم فصل الخريطتين بواسطة "،" والتمثيل العام هو كما يلي:
{'key1': 'value1' ، 'key2': 'value2'}
فيما يلي صورة الموقع الرسمي:
2. أarray
إنها صفيف بالمعنى العادي ، مع النموذج العام على النحو التالي:
['arr1' ، 'arr2' ، 'arr3'] ؛
فيما يلي صورة الموقع الرسمي:
يمكن أن تكون القيمة في الشكل:
تلخيص:
(1) لا يوجد سوى نوعين من هياكل البيانات في JSON ؛
(2) يمكن تداخلها ، مثل الأشياء يمكن أن يتم تداخلها في الصفيف ؛
(3) تذكر: يتم تمثيل الكائن بواسطة {} ، ويمثل الصفيف [] ؛
3. مثال على تحويل JSON و XML
يمكن تحويل أي XML المذكورة أعلاه إلى حزمة JSON ؛
1. XML بسيط
تنسيق XML:
<Person> <name> xiazdong </same> <Age> 20 </teg> </perform>
تنسيق JSON:
{"الاسم": "Xiazdong" ، "العمر": 20}2. المعقدة XML
تنسيق XML:
<section> <title> book </title> <signing> <efurner name = "uphurn-1"/> <book price = "$ 11"/> </signing> <signing> <eather name = "defull-2"/> <book price = "$ 22"/> </signing> </section>
تنسيق JSON:
"القسم": {"title": "book" ، "التوقيع": [{<span style = "white-space: pre"> </span> "uptor": {"name": "uptor-1"} ، "book": {"" title ":" book1 "،" price ":" $ 11 "}} ، "السعر": "$ 22"}} <span style = "White-Space: Pre"> </span>]}}ملاحظة: يتم تمثيل الخصائص في XML أيضًا بخريطة JSON ؛
4. حزمة JSON
إذا كنا نريد استخدام حزمة JSON ، فيمكننا تنزيل الكود المصدري لحزمة JSON وإضافة هذه الرموز إلى مشروع Eclipse والاتصال به ؛
إذا كنت ترغب في رؤية وثائق API ، يمكنك أن ترى: http://www.json.org/java/index.html
الفئتان الأكثر استخدامًا في حزمة JSON هما JSONOBJECT و JSONARRAY ، والتي تمثل هيكلين للبيانات على التوالي ؛
1. مثيل رمز JSONOBJER
حزمة com.xiazdong.json ؛ استيراد weibo4j.org.json.jsonarray ؛ استيراد weibo4j.org.json.jsonoBject ؛ اختبار الفئة العامة {public static void main (string [] args) يرمي الاستثناء {jsonobject jsonobj = new jsonobject ("{'name': 'xiazdong' ، 'age': 20}") ؛ اسم السلسلة = jsonobj.getString ("الاسم") ؛ int age = jsonobj.getint ("Age") ؛ System.out.println (name+":"+Age) ؛ }}2. مثيل رمز jsonarray
jsonarray array = New Jsonarray (String str) ؛ // تحويل السلسلة إلى jsonarrayint طول = array.length () ؛ // إرجاع طول الصفيف ؛
حزمة com.xiazdong.json ؛ استيراد weibo4j.org.json.jsonarray ؛ استيراد weibo4j.org.json.jsonoBject ؛ اختبار الفئة العامة {public static void main (string [] args) يلقي الاستثناء {jsonarray jsonarray = new jsonarray ("[{'name': 'xiazdong' ، 'age': 20} ، {'name': 'xzdong' ، 'Age': 15}]") ؛ لـ (int i = 0 ؛ i <jsonarray.length () ؛ i ++) {string name = jsonarray.getJsonObject (i) .getString ("name") ؛ int age = jsonarray.getJsonObject (i) .getInt ("Age") ؛ System.out.println ("name ="+name) ؛ System.out.println ("Age ="+Age) ؛ }}} 3. مثيلات JSONOBject و JSONARRAY CODE
حزمة com.xiazdong.json ؛ استيراد weibo4j.org.json.jsonarray ؛ استيراد weibo4j.org.json.jsonoBject ؛ اختبار الفئة العامة {public static void main (string [] args) يرمي الاستثناء {String str = "{'name': 'xiazdong' ، 'age': 20 ، 'book': ['Book1' ، 'Book2']" ؛ jsonobject obj = new jsonobject (str) ؛ System.out.println (obj.getjsonarray ("book"). getString (0)) ؛ }}4. مثال رمز JSORNSTRING
يمكن استخدام JSonstringer لإنشاء نص تنسيق JSON بسرعة وتحويله إلى سلسلة ، والتي يمكن كتابتها إلى ملف ؛
Jsonstringer هي فئة فرعية من JsonWriter.
يتم إنشاء JSonstringer عمومًا من خلال الكائن (). المفتاح ()
Object () يشير إلى أنه يتم بدء كائن ، أي إضافة {؛
يشير EndObject () إلى أنه يتم إنهاء كائن ، أي إضافة} ؛
يشير Array () إلى بدء صفيف ، أي إضافة [؛
يشير Endarray () إلى أن صفيف قد انتهى ، أي إضافة واحدة] ؛
المفتاح () يعني إضافة مفتاح ؛
القيمة () تعني إضافة قيمة ؛
حزمة com.xiazdong.json ؛ استيراد weibo4j.org.json.jsonstringer ؛ الطبقة العامة jsonstringerdemo {public static void main (string [] args) يلقي استثناء {jsonstringer stringer = new jsonstringer () ؛ string str = stringer.object () system.out.println (str) ؛ }} كتابة تنسيق JSON المعقدة
حزمة com.xiazdong.json ؛ استيراد java.io.file ؛ استيراد java.io.filereader ؛ استيراد weibo4j.org.json.jsonarray ؛ استيراد weibo4j.org.json.jsonoBject ؛ استيراد weibo4j.org.json.jsonstringer ؛ استيراد weibo4j.org.json.jsonstringer ؛ استيراد weibo4j.org.json.jsontkener ؛ الطبقة العامة jsonstringerdemo {public static void main (string [] args) يلقي الاستثناء {jsonstringer js = new jsonstringer () ؛ JSonObject OBJ2 = New JSonObject () ؛ JSonObject OBJ3 = New JSonObject () ؛ JSonObject OBJ4 = New JSonObject () ؛ obj4.put ("title" ، "book1"). put ("Price" ، "$ 11") ؛ OBJ3.PUT ("Book" ، OBJ4) ؛ obj3.put ("المؤلف" ، new jsonobject (). put ("name" ، "effect-1")) ؛ JSonObject OBJ5 = New JSonObject () ؛ jsonobject obj6 = new JsonObject () ؛ obj6.put ("title" ، "book2"). put ("Price" ، "$ 22") ؛ OBJ5.PUT ("Book" ، OBJ6) ؛ OBJ5.PUT ("المؤلف" ، New Jsonobject (). put ("name" ، "uptor-2")) ؛ jsonarray obj7 = new jsonarray () ؛ OBJ7.PUT (OBJ3) .PUT (OBJ5) ؛ obj2.put ("title" ، "book") ؛ obj2.put ("التوقيع" ، OBJ7) ؛ js.Object () System.out.println (JS.ToString ()) ؛ printWriter Out = new PrintWriter (fileOutputStream جديد (1.txt)) ؛ out.println (JS.ToString ()) ؛ }} يولد الرمز أعلاه تنسيق JSON التالي:
{"القسم": {"title": "book" ، "التوقيع": [{"المؤلف":} }}5.jSontokener رمز مثال
يتم استخدام JSONTOKNER لقراءة الملفات بتنسيق JSON ؛
JSONOBJECT OBJ = New JSONOBJECT (New JSONTOKNER (java.io.reader)) ؛ يمكنك قراءة jsonobject من ملف ؛
Jsonarray OBJ = New Jsonarray (New Jsonarray (java.io.reader)) ؛ يمكنك قراءة jsonarray من ملف ؛
{'name': 'xiazdong' ، 'Book': ['Book1' ، 'Book2']} package com.xiazdong.json ؛ استيراد java.io.file ؛ استيراد java.io.filereader ؛ استيراد weibo4j.org.json.jsonoBject ؛ استيراد weibo4j.org.json.jsontokener ؛ الطبقة العامة jsonstringerdemo {public static void main (string [] args) يلقي الاستثناء {jsonobject obj = new jsonobject (new jsonobject (new jsontokener (new fileReader (ملف جديد ("1.txt")))))))) قراءة رمز في تنسيق JSON المعقد:
{"القسم": {"title": "book" ، "التوقيع": [{"المؤلف":} }} حزمة com.xiazdong.json ؛ استيراد java.io.file ؛ استيراد java.io.filereader ؛ استيراد weibo4j.org.json.jsonoBject ؛ استيراد weibo4j.org.json.jsontokener ؛ الطبقة العامة jsonstringerdemo {public static void main (string [] args) يلقي استثناء {jsonobject obj = new jsonobject (new jsonobject (new jsontokener (New FileReader (ملف جديد ("1.txt"))))) ؛ System.out.println (OBJ.GetJsonObject ("Section"). GetJsonarray ("التوقيع").تلخيص:
1 في Java ، يتم تمثيل سلسلة تنسيق JSON بشكل أفضل في اقتباسات واحدة ؛
2. استخدم JSONOBJECT+JSONTOKENER لقراءة كائنات ملف تنسيق JSON ؛
3. استخدم PrintWriter+JSonstringer لكتابة ملفات JSON ؛
ملاحظة: بما أنني أردت أصلاً أن أحاول الكتابة مع JSONWriter ، لكنها لم تكن ناجحة ؛ لذلك لا يمكنني استخدام JSonstringer+PrintWriter إلا ؛
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.