Simple Json adalah kerangka parsing Java Json yang dikembangkan oleh Google, berdasarkan protokol Apache.
Beranda Json-Simple: //www.vevb.com/softs/455885.html
File yang diunduh adalah: json_simple.jar
Contoh 1: Cara yang sangat nyaman untuk menggunakan JSONVALUE
System.out.println ("==========================================; string s =" [0, {/"1/": {/"2/": {/"3/": {/"4/": {/"2/": {/"3/": {/"4/": {/"2/" OBJ = JSonValue.Parse (S); obj2 = (jsonObject) array.get (1); s = "}";JsonObject mewarisi peta, sementara jsonarray mewarisi daftar, sehingga Anda dapat menggunakan cara peta dan daftar standar untuk menggunakan jsonObject dan jsonarray.
JsonValue dapat menggunakan array atau objek.
Contoh 2: Cara Cepat, Menggunakan JsonParser
Jsonparser parser = jsonparser baru (); System.out.println ("========================================================================================================================================================================================================================================================================================= array = (jsonarray) obj; System.out.println ("======== Elemen ke -2 array ===================; System.out.println (array.get (1)); System.out.println (); JsonObject Obj2 (1) (Systems.out.println (); JsonObject OBJ2 (1); System.out.println ("====== Field /" 1 /"=====================================; System.out.println (Obj2.get (" 1 ")); s =" {} "; obj = parser.parser. S = "5,]";Menggunakan jsonparser membutuhkan pengecualian untuk ditangkap.
Contoh 3: Penanganan Pengecualian
String jsontext = "[[null, 123.45,/" a // tb c/"]}, true"; Jsonparser parser = jsonparser baru (); coba {parser.parse (jsontext); } catch (parseException pe) {System.out.println ("Posisi:" + pe.getPosition ()); System.out.println (PE); }Hasil Eksekusi:
Posisi: 25 Token Right Brace (}) yang tidak terduga pada posisi 25.
Contoh 4: Pabrik Kontainer
Gunakan kelas ContainerFactory untuk membuat pabrik kontainer.
String jsontext = "{/" first/": 123,/" detik/": [4, 5, 6],/" ketiga/": 789}"; Jsonparser parser = jsonparser baru (); ContainerFactory containerFactory = containerFactory baru () {daftar publik createRrayContainer () {return new LinkedList (); } peta publik createObjectContainer () {return new LinkedHashMap (); }}; coba {peta json = (peta) parser.parse (jsontext, containerfactory); Iterator iter = json.entryset (). Iterator (); System.out.println ("== Itererat hasil =="); while (iter.hasnext ()) {map.entry entri = (map.entry) iter.next (); System.out.println (entry.getKey () + "=>" + entry.getValue ()); } System.out.println ("== TOJSonstring () =="); System.out.println (jsonvalue.tojsonstring (json)); } catch (parseException pe) {System.out.println (pe); }Hasilnya adalah sebagai berikut:
== iterate hasil == pertama => 123 detik => [4,5,6] ketiga => 789 == TOJSonstring () == {"First": 123, "Kedua": [4,5,6], "Ketiga": 789} Jika Anda tidak menggunakan pabrik kontainer, Simple-Json menggunakan JsonObject dan JsonArray secara default. Contoh 5: Pemrosesan konten saksofon yang dapat dihentikan SimpleJson merekomendasikan metode pemrosesan konten saksofon yang dapat dihentikan untuk memproses aliran teks. Pengguna dapat tetap pada titik mana pun dalam aliran input logis, kemudian memproses logika lain, dan kemudian melanjutkan dengan pemrosesan sebelumnya. Jangan menunggu seluruh aliran diproses. Inilah contohnya. Keyfinder.java: kelas KeyFinder mengimplementasikan ContentHandler {nilai objek privat; Private Boolean Ditemukan = Salah; private boolean end = false; kunci string pribadi; Private String Matchkey; public void setMatchKey (string matchkey) {this.matchkey = matchkey; } objek publik getValue () {nilai pengembalian; } public boolean isEnd () {return end; } public void setFound (boolean ditemukan) {this.found = found; } public boolean isFound () {return found; } public void startjson () melempar parseException, ioException {found = false; end = false; } public void endjson () melempar parseException, ioException {end = true; } public boolean primitif (nilai objek) melempar parseException, ioException {if (key! = null) {if (key.equals (matchkey)) {found = true; this.value = nilai; kunci = null; mengembalikan false; }} return true; } public boolean startArray () melempar parseException, ioException {return true; } public boolean startObject () melempar parseException, ioException {return true; } public boolean startObjectEnry (tombol string) melempar parseException, ioException {this.key = key; Kembali Benar; } public boolean endarray () melempar parseException, ioException {return false; } endObject public boolean () melempar parseException, ioException {return true; } public boolean endObjectEnry () melempar parseException, ioException {return true; }} Logika utama: String JSontext = "{/" First/": 123,/" Second/": [{/" K1/": {/" id/":/" id1/"}, 4, 5, 6, {/" id/": 123}],/" ketiga/": 789,/" id/": null}"; Jsonparser parser = newjsonparser (); KeyFinder Finder = newKeyFinder (); finder.setMatchKey ("id"); coba {while (! finder.isend ()) {parser.parse (jsontext, finder, true); if (finder.isfound ()) {finder.setFound (false); System.out.println ("Id Ditemukan:"); System.out.println (finder.getValue ()); }}} catch (parseException pe) {pe.printstacktrace (); } Hasil Eksekusi:ID Ditemukan: ID1 Ditemukan ID: 123 Ditemukan ID: NULLContoh 6: Seluruh grafik objek dianalisis menggunakan saksofon seperti
Class Transformer mengimplementasikan ContentHandler {Private Stack ValueStack; objek publik getResult () {if (valueStack == null || valueStack.size () == 0) return null; return valueStack.peek (); } public boolean endarray () melempar parseException, ioException {trackback (); Kembali Benar; } public void endjson () melempar parseException, ioException {} public boolean endobject () melempar parseException, ioException {trackback (); Kembali Benar; } public boolean endobjectEntry () melempar parseException, ioException {objek nilai = valueStack.pop (); Kunci objek = valueStack.pop (); Peta parent = (peta) valueStack.peek (); parent.put (tombol, nilai); Kembali Benar; } private void trackback () {if (valueStack.size ()> 1) {objek nilai = valueStack.pop (); Objek prev = valueStack.peek (); if (prev instanceof string) {valueStack.push (value); }}} private void consumptionValue (nilai objek) {if (valueStack.size () == 0) valueStack.push (nilai); else {objek prev = valueStack.peek (); if (prev instanceof list) {list array = (list) prev; array.add (nilai); } else {valueStack.push (value); }}} public boolean primitif (nilai objek) melempar parseException, ioException {konsumsivalue (nilai); Kembali Benar; } public boolean startArray () melempar parseException, ioException {list array = new jsonarray (); Nilai konsumsi (array); valueStack.push (array); Kembali Benar; } public void startjson () melempar parseException, ioException {valueStack = new stack (); } public boolean startObject () melempar parseException, ioException {peta objek = new jsonobject (); konsumsi (objek); valueStack.push (objek); Kembali Benar; } public boolean startObjectEnry (tombol string) melempar parseException, ioException {valueStack.push (key); Kembali Benar; }} Logika Metode Utama:String jsonstring = <input json text>; Nilai objek = null; Jsonparser parser = jsonparser baru (); Transformer Transformer = Transformer baru (); parser.parse (jsonstring, transformer); value = transformer.getResult ();Hasil Eksekusi:
String jsonstring = <input json text>; Nilai objek = null; Jsonparser parser = newjsonparser (); nilai = parser.parse (jsonstring);Catatan: JsonPauser tidak aman.
JSON_ENCODE - Pengkodean variabel JSON.
Deskripsi: String JSON_ENCODE ($ value), Mengembalikan bentuk JSON dari nilai nilai.
Parameter: Nilai yang akan dikodekan dapat berupa tipe data apa pun kecuali untuk jenis sumber daya
Fungsi ini hanya dapat menerima data yang dikodekan UTF-8 (Catatan Terjemahan: Mengacu pada Data Karakter/Jenis String)
Nilai pengembalian: Jika pengkodean berhasil, string yang diwakili dalam JSON akan dikembalikan.