1. Pengantar JSON
JSON (Notasi Objek JavaScript), mirip dengan XML, adalah format pertukaran data. Misalnya, jika Java menghasilkan data ke JavaScript, selain menggunakan XML, Anda juga dapat menggunakan JSON;
Keuntungan JSON dibandingkan XML adalah sangat mudah diekspresikan; Situs web resmi: http://www.json.org/
JSON adalah X di Ajax (yaitu, dapat menggantikan XML); ------ dari pendiri JSON;
CATATAN: JSON bukan format dokumen, tidak ada dokumen *.json. Secara umum, dokumen format JSON ditemukan di TXT, dan XML dapat menjadi standar;
editor online JSON: http://tools.vevb.com/tools/json/json_editor.htm
2. Struktur Data JSON
JSON memiliki dua struktur data:
(1) peta, juga dikenal sebagai objek; {......}
(2) array; [......]
Dengan kata lain, semua objek JSON harus diwakili dalam bentuk -bentuk ini;
1.sap
Sederhananya, ini adalah peta di Java. Pasangan nilai nama diberikan, dan nama dan nilainya dipisahkan oleh ":" dan kedua peta dipisahkan oleh "," dan representasi umum adalah sebagai berikut:
{'key1': 'value1', 'key2': 'value2'}
Berikut ini adalah gambar situs web resmi:
2.array
Ini adalah array dalam arti biasa, dengan bentuk umum sebagai berikut:
['arr1', 'arr2', 'arr3'];
Berikut ini adalah gambar situs web resmi:
Nilai dalam gambar bisa:
Meringkaskan:
(1) Hanya ada dua jenis struktur data di JSON;
(2) dapat bersarang, seperti benda dapat bersarang di array;
(3) Ingat: Objek diwakili oleh {}, dan array diwakili oleh [];
3. Contoh konversi JSON dan XML
Setiap XML yang disebutkan di atas dapat dikonversi menjadi paket JSON;
1. XML sederhana
Format XML:
<senem> <name> xiazdong </name> <mage> 20 </mage> </sonal>
Format JSON:
{"name": "xiazdong", "usia": 20}2. Kompleks XML
Format XML:
<section> <Title> Buku </iteme> <Inding> <name author = "author-1"/> <book price = "$ 11"/> </sandan> <Signing> <name author = "penulis-2"/> <book price = "$ 22"/> </penandatanganan> </bagian>
Format JSON:
"Bagian": {"judul": "Book", "Signing": [{<span style = "White-space: pre"> </span> "penulis": {"name": "author-1"}, "book": {"judul": "" "", "Price": "$ 11"}}, {"Author": "" "" "," "$ 11"}}, {"{" {"" " "Harga": "$ 22"}} <span style = "White-Space: Pre"> </span>]}}Catatan: Properti dalam XML juga diwakili oleh peta JSON;
4. Paket JSON
Jika kami ingin menggunakan paket JSON, kami dapat mengunduh kode sumber paket JSON dan menambahkan kode -kode ini ke proyek Eclipse dan menyebutnya;
Jika Anda ingin melihat dokumentasi API, Anda dapat melihat: http://www.json.org/java/index.html
Dua kelas yang paling umum digunakan dalam paket JSON adalah JsonObject dan JsonArray, yang masing -masing mewakili dua struktur data;
1. Contoh kode JSONOBJECT
paket com.xiazdong.json; impor weibo4j.org.json.jsonarray; impor weibo4j.org.json.jsonobject; tes kelas publik {public static void main (string [] args) melempar Exception {jsonObject jsonobj = new jsonobject ("{'name': 'xiazdong', 'usia': 20}"); String name = jsonobj.getString ("name"); int usia = jsonobj.getint ("usia"); System.out.println (name+":"+usia); }}2. Contoh kode jsonarray
Jsonarray array = jsonarray baru (string str); // Konversi string ke jsonarrayint length = array.length (); // mengembalikan panjang array;
paket com.xiazdong.json; impor weibo4j.org.json.jsonarray; impor weibo4j.org.json.jsonobject; tes kelas publik {public static void main (string [] args) melempar pengecualian {jsonarray jsonarray = new jsonarray ("[{'name': 'xiazdong', 'usia': 20}, {'nama': 'xzdong', 'usia': 15}]"); untuk (int i = 0; i <jsonarray.length (); i ++) {string name = jsonarray.getjsonobject (i) .getString ("name"); int usia = jsonarray.getjsonObject (i) .getInt ("usia"); System.out.println ("name ="+name); System.out.println ("usia ="+usia); }}} 3. JsonObject dan JSONArray Code Instances
paket com.xiazdong.json; impor weibo4j.org.json.jsonarray; impor weibo4j.org.json.jsonobject; tes kelas publik {public static void main (string [] args) melempar pengecualian {string str = "{'name': 'xiazdong', 'usia': 20, 'book': ['book1', 'book2']"; JsonObject obj = new jsonObject (str); System.out.println (obj.getjsonArray ("Book"). Getstring (0)); }}4. Contoh kode jsonstringer
JSonstringer dapat digunakan untuk dengan cepat membangun teks format JSON dan mengubahnya menjadi string, yang dapat ditulis ke file;
Jsonstringer adalah subclass dari JsonWriter;
Jsonstringer umumnya dibangun melalui objek (). Key (). Value (). Key (). Value (). Endobject ();
Object () menunjukkan bahwa suatu objek dimulai, yaitu, menambahkan {;
endobject () menunjukkan bahwa objek berakhir, yaitu, menambahkan};
Array () menunjukkan bahwa array dimulai, yaitu, menambahkan [;
endarray () menunjukkan bahwa array berakhir, yaitu, menambahkan satu];
key () berarti menambahkan kunci;
value () berarti menambahkan nilai;
paket com.xiazdong.json; impor weibo4j.org.json.jsonstringer; kelas publik jsonstringerDemo {public static void main (string [] args) melempar Exception {jsonstringer stringer = new jsonstringer (); String str = stringer.object (). Key ("name"). Value ("xiazdong"). Key ("Age"). Value (20) .EndObject (). ToString (); System.out.println (str); }} Menulis format JSON yang kompleks
paket com.xiazdong.json; impor java.io.file; impor java.io.filereader; impor weibo4j.org.json.jsonarray; impor weibo4j.org.json.jsonobject; impor weibo4j.org.json.jsonstringer; impor weibo4j.org.json.jsonstringer; impor weibo4j.org.json.jsontkener; kelas publik jsonstringerdemo {public static void main (string [] args) melempar Exception {jsonstringer js = new jsonstringer (); JsonObject obj2 = new jsonObject (); JsonObject obj3 = jsonobject () baru; JsonObject obj4 = new jsonobject (); obj44 ("judul", "book1"). put ("harga", "$ 11"); obj3.put ("buku", obj4); obj3.put ("penulis", jsonobject (). put ("name", "author-1")); JsonObject obj5 = jsonobject () baru; JsonObject obj6 = new jsonobject (); obj6.put ("judul", "book2"). put ("harga", "$ 22"); obj5.put ("buku", obj6); obj5.put ("penulis", jsonObject () baru ("nama", "penulis-2")); Jsonarray obj7 = jsonarray baru (); obj7.put (obj3) .put (obj5); obj2.put ("judul", "buku"); obj2.put ("penandatanganan", obj7); js.object (). Key ("Sesi"). Value (Obj2) .EndObject (); System.out.println (js.tostring ()); Printwriter out = printwriter baru (FileOutputStream baru (1.txt)); out.println (js.tostring ()); }} Kode di atas menghasilkan format JSON berikut:
{"section":{ "title":"BOOK", "signing":[ { "author": { "name":"author-1" }, "book": { "title":"book1", "price":"$11" } }, { "author": { "name":"author-2" }, "book": { "title":"book2", "price":"$22" } } ]} }}5. Contoh Kode JSontokener
JSontokener digunakan untuk membaca file dalam format JSON;
JsonObject obj = new jsonObject (jsontokener baru (java.io.reader)); Anda dapat membaca JSONObject dari file;
Jsonarray obj = jsonarray baru (jsonarray baru (java.io.reader)); Anda dapat membaca jsonarray dari file;
{'name': 'xiazdong', 'book': ['book1', 'book2']} paket com.xiazdong.json; impor java.io.file; impor java.io.filereader; impor weibo4j.org.json.jsonobject; impor weibo4j.org.json.jsontokener; kelas publik jsonstringerdemo {public static void main (string [] args) melempar Exception {jsonObject obj = new jsonObject (jsonObject baru (jsontokener baru (filereader baru (file new ("}}} ("}}}}}}}}}}}}}}}}} book ("o))); Membaca kode dalam format JSON yang kompleks:
{"section":{ "title":"BOOK", "signing":[ { "author": { "name":"author-1" }, "book": { "title":"book1", "price":"$11" } }, { "author": { "name":"author-2" }, "book": { "title":"book2", "price":"$22" } } ]} }} paket com.xiazdong.json; impor java.io.file; impor java.io.filereader; impor weibo4j.org.json.jsonobject; impor weibo4j.org.json.jsontokener; kelas publik jsonstringerdemo {public static void main (string [] args) melempar Exception {jsonObject obj = new jsonObject (new jsonObject (jsontokener baru (filereader baru (file baru ("1.txt")))); System.out.println (obj.getjSonObject ("bagian"). GetjsonArray ("penandatanganan"). Getjsonobject (0) .getjsonObject ("penulis"). GetString ("name"));Meringkaskan:
1 Dalam Java, string format JSON paling diwakili dalam satu kutipan;
2. Gunakan jsonObject+jsontokener untuk membaca objek file format json;
3. Gunakan printwriter+jsonstringer untuk menulis file JSON;
Catatan: Karena saya awalnya ingin mencoba menulis dengan JSONWRITER, tetapi itu tidak berhasil; Jadi saya hanya bisa menggunakan jsonstringer+printwriter untuk menulis;
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.