Artikel ini menganalisis tiga cara parsing JSON berdasarkan Java. Bagikan untuk referensi Anda, sebagai berikut:
1. Apa itu JSON?
JSON adalah struktur data yang menggantikan XML. Dibandingkan dengan XML, ini lebih kecil tetapi memiliki kemampuan deskripsi yang baik. Karena kecilnya, jaringan mentransmisikan data untuk mengurangi lebih banyak lalu lintas dan mempercepat.
JSON adalah string string, tetapi elemen ditandai dengan simbol tertentu.
{} Braket ganda mewakili objek
[] Kurung mewakili array
"" Dalam kutipan ganda adalah atribut atau nilai
: Usus besar menunjukkan bahwa yang terakhir adalah nilai dari yang pertama (nilai ini bisa berupa string, angka, atau array atau objek lain)
Jadi {"name": "michael"} dapat dipahami sebagai objek yang berisi nama sebagai michael
Dan [{"name": "michael"}, {"name": "jerry"}] berarti array yang berisi dua objek
Tentu saja, Anda juga dapat menggunakan {"name": ["Michael", "Jerry"]} untuk menyederhanakan yang di atas, yang merupakan objek dengan berbagai nama.
2. Analisis JSON Tradisional: Analisis JSON
1. Hasilkan string JSON
string statis public createJsonstring (tombol string, nilai objek) {jsonObject jsonObject = new jsonobject (); jsonobject.put (tombol, nilai); return jsonobject.toString ();}2. Parsing string JSON
Ini dibagi menjadi tiga situasi berikut: Javabean, array daftar, dan array daftar dengan peta bersarang:
Impor java.util.arraylist; impor java.util.hashmap; impor java.util.iterator; impor java.util.list; public java.util.map; impor org.json.jsonarray; impor org.json.jsonobject; impor com.android.myjson.myjson.myjson.myjson.myjson.myjson.myjson.myjson.myjon.domon.domon.domon.domin Jsontools {public static orang getperson (tombol string, string jsonstring) {orang orang = orang baru (); coba {jsonObject jsonObject = new jsonObject (jsonstring); JsonObject personObject = jsonObject.getjsonObject ("orang"); person.setid (personObject.getInt ("id")); person.setname (personObject.getString ("name")); person.setAddress (personObject.getString ("alamat")); } catch (Exception e) {// todo: menangani pengecualian} return orang; } Public Static List getpersons (tombol string, string jsonstring) {list list = new arraylist (); coba {jsonObject jsonObject = new jsonObject (jsonstring); // kembalikan array json jsonarray jsonarray = jsonobject.getjsonArray (kunci); untuk (int i = 0; i <jsonarray.length (); i ++) {jsonObject jsonobject2 = jsonarray.getjsonObject (i); Orang orang = orang baru (); person.setid (jsonobject2.getint ("id")); person.setname (jsonobject2.getString ("name")); person.setAddress (jsonobject2.getString ("alamat")); list.add (orang); }} catch (Exception e) {// todo: menangani pengecualian} daftar kembali; } Daftar statis publik getList (tombol string, string jsonstring) {daftar daftar = arraylist baru (); coba {jsonObject jsonObject = new jsonObject (jsonstring); Jsonarray jsonarray = jsonobject.getjsonArray (key); untuk (int i = 0; i <jsonarray.length (); i ++) {string msg = jsonarray.getString (i); list.add (msg); }} catch (Exception e) {// todo: menangani pengecualian} daftar kembali; } Daftar Statis Public> ListKeyMaps (tombol String, String JSonstring) {List> List = New ArrayList> (); coba {jsonObject jsonObject = new jsonObject (jsonstring); Jsonarray jsonarray = jsonobject.getjsonArray (key); untuk (int i = 0; i <jsonarray.length (); i ++) {jsonObject jsonobject2 = jsonarray.getjsonObject (i); Peta peta = hashmap baru (); Iterator iterator = jsonobject2.keys (); while (iterator.hasnext ()) {string json_key = iterator.next (); Objek json_value = jsonobject2.get (json_key); if (json_value == null) {json_value = ""; } peta.put (json_key, json_value); } list.add (peta); }} catch (Exception e) {// todo: menangani pengecualian} daftar kembali; }}3. Analisis JSON GSON
1. Hasilkan string JSON
Impor com.google.gson.gson; kelas publik jsonutils {public static string createJSonObject (objek obj) {gson gson = new gson (); String str = gson.toJson (obj); mengembalikan str; }}2. Analisis JSON
import java.util.ArrayList;import java.util.List;import java.util.Map;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;;public class GsonTools { public GsonTools() { // TODO Auto-generated constructor stub } /** * @param * @param jsonString * @param cls * @return */ public static t getperson (string jsonstring, class cls) {t t = null; coba {gson gson = new gson (); t = gson.fromjson (jsonstring, cls); } catch (exception e) {// todo: handle exception} return t; } / ** * Gunakan daftar GSON untuk parse * * @param * @param jsonstring * @param cls * @return * / daftar statis publik getpersons (string jsonstring, class cls) {daftar daftar = arraylist baru (); coba {gson gson = new gson (); list = gson.fromjson (jsonstring, typetoken baru> () {} .getType ()); } catch (Exception e) {} daftar pengembalian; } / ** * @param jsonstring * @return * / Public Static List getList (string jsonstring) {daftar daftar = arraylist baru (); coba {gson gson = new gson (); list = gson.fromjson (jsonstring, typetoken baru> () {} .getType ()); } catch (Exception e) {// todo: handle Exception} daftar pengembalian; } Daftar Statis Public> ListKeyMaps (String JSonstring) {List> List = New ArrayList> (); coba {gson gson = new gson (); list = gson.fromjson (jsonstring, typetoken baru >> () {} .getType ()); } catch (Exception e) {// todo: handle Exception} daftar pengembalian; }}4. Fastjson Parsing
Impor java.util.arraylist; import java.util.list; import java.util.map; import com.alibaba.fastjson.json; com.alibaba.fastjson.typereference; kelas publik jsontool {public static t getperson (string jsonstring, class cls) {t null t = nnull t getperson (string jsonstring, class cls) {t t t = nnull t getperson (string jsonstring, class cls) {t null n (t a null n (string jsonstring, class cls) {t nsontool {t a null; coba {t = json.parseObject (jsonstring, cls); } catch (exception e) {// todo: handle exception} return t; } Public Static List getPersonList (String jsonstring, class cls) {list list = new arraylist (); coba {list = json.parseArray (jsonstring, cls); } catch (Exception e) {// todo: handle Exception} daftar pengembalian; } Daftar statis publik> getPersonListMap1 (string jsonstring) {list> list = new arraylist> (); coba {list = json.parseObject (jsonstring, typereference baru >> () {} .getType ()); } catch (Exception e) {// todo: handle Exception} daftar pengembalian; }}Meringkaskan:
Untuk perangkat seluler, terutama dalam hal lingkungan jaringan yang buruk dan keterbatasan lalu lintas, JSON akan menghemat lalu lintas dan memiliki efisiensi transmisi yang lebih tinggi dibandingkan dengan transmisi data format XML. Di antara tiga metode analitik ini, FastJson adalah yang paling efisien dan direkomendasikan.
PS: Mengenai operasi JSON, berikut adalah beberapa alat online JSON praktis untuk referensi Anda: Verifikasi kode JSON online, inspeksi, kecantikan dan alat pemformatan: Alat pemformatan online JSON : Alat konversi Mutual XML/JSON online: JSON Code Online Formatting/Keindahan/Kompresi/Pengeditan/Konversi Alat: Alat kompresi/pelarian JSON online: C Bahasa Gaya/HTML/CSS/JSON Formatting dan alat kecantikan:
http://tools.vevb.com/code/json
http://tools.vevb.com/code/jsonformat
http://tools.vevb.com/code/xmljson
http://tools.vevb.com/code/jsoncodeformat
http://tools.vevb.com/code/json_yasuo_trans
http://tools.vevb.com/code/ccode_html_csss_json
Saya harap artikel ini akan membantu pemrograman Java semua orang.