JSON (Notasi Objek JavaScript) adalah format pertukaran data ringan yang menggunakan format teks yang sepenuhnya independen bahasa dan merupakan format pertukaran data yang ideal. Sementara itu, JSON adalah format asli Javascript, yang berarti bahwa tidak ada API atau toolkit khusus yang diperlukan untuk memproses data JSON dalam JavaScript.
Banyak alat konstruksi dan parsing JSON di bawah Java diterbitkan di www.json.org. Di antara mereka, org.json dan json-lib relatif sederhana. Keduanya serupa digunakan tetapi masih ada beberapa perbedaan. Selanjutnya, kami akan memperkenalkan contoh metode menggunakan org.json untuk membangun dan menguraikan data JSON.
Untuk penjelasan terperinci tentang metode membangun dan mem-parsing data JSON menggunakan JSON-LIB, silakan merujuk ke posting blog saya sebelumnya: Dua metode membangun dan mem-parsing data JSON menggunakan Java (penjelasan terperinci 1)
1. Pendahuluan
Paket org.json adalah paket lain yang digunakan untuk mengonversi kacang, koleksi, peta, array java dan xml dan json. Ini terutama digunakan untuk menguraikan data JSON. Ini memiliki penjelasan terperinci di situs web resminya http://www.json.org/. Jika Anda tertarik, Anda dapat mempelajarinya.
2. Unduh Paket Jar Dependency
Anda dapat mengunduhnya di sini
3. Pengantar Metode Dasar
Karena org.json tidak dapat secara langsung dikonversi menjadi kacang, itu perlu dikonversi melalui peta. Untuk kenyamanan, saya telah menulis kelas alat JsonHelper di sini, yang digunakan untuk mengonversi JSON dengan peta dan kacang.
Paket com.json; import java.lang.reflect.method; impor java.text.parseexception; import java.util.hashmap; import java.util.iterator; import java.util.map; impor org.json.jsonexception; impor org.json.json.json; JSONObject* 2: Convert Map to Javabean* 3: Convert JSONObject to Map, Javabean* * @author Alexia*/public class JsonHelper {/*** Convert Javabean to Map* * @param javaBean* javaBean* @return Map object*/public static Map toMap(Object javaBean) {Map result = new HashMap();Method[] methods = javabean.getClass (). getDeclaredMethods (); for (metode metode: metode) {coba {if (method.getname (). startswith ("get")) {string field = method.getName (); field = field.substring (field.indexof ("get") + 3); field = field.tol.tol (field.Indexof ("get") + 3); field = field.tol.tol (Field.IndExOf ("get") + 3); field = field. value = method.invoke (javabean, (objek []) null); result.put (field, null == value? "": value.toString ());}} catch (pengecualian e) {e.printstacktrace ();}} return hasil;}/*** Objek convert json objek ke memetakan* @param json json* JSONException*/public static Map toMap(String jsonString) throws JSONException {JSONObject jsonObject = new JSONObject(jsonString);Map result = new HashMap();Iterator iterator = jsonObject.keys();String key = null;String value = null;while (iterator.hasNext()) {key = (String) iterator.next();value = jsonObject.getString(key);result.put(key, value);}return result;}/*** Convert JavaBean to JSONObject (transfer via Map)* * @param bean* javaBean* @return json object*/public static JSONObject toJSON(Object bean) {return new JSONObject(toMap(bean));}/*** Convert Peta ke JavaBean** @param Javabean* Javabean* @param data* peta data*/objek statis public Tojavabean (objek javabean, data peta) {metode [] metode = javabean.getClass (). Metode (getDecLaredMethods (); for (Metode: Metode: Metode) {try {if. method.getName (); field = field.substring (field.indexof ("set") + 3); field = field.tolowercase (). charaat (0) + field.substring (1); method.invoke (Javabean, objek baru [] {data.get (field)});}}}}}} {field {{field); JavaBean* * @param bean* javaBean* @return json object* @throws ParseException* json parsing exception* @throws JSONException*/public static void toJavaBean(Object javabean, String jsonString)throws ParseException, JSONException {JSONObject jsonObject = new JSONObject(jsonString);Map map = tomap (jsonobject.toString ()); Tojavabean (javabean, peta);}} 4. Contoh demonstrasi
Berikut adalah beberapa metode umum dasar untuk diuji
Paket com.json; impor java.text.parseexception; impor java.util.arraylist; import java.util.hashmap; impor java.util.list; impor java.util.map; impor org.jsonarray; impor org.json.jsonexception; Parse JSON Data** @Author Alexia* @Date 2013/5/23**/kelas publik orgjsontest {/*** Bangun data json** @return* @throws jsonexception*/public static string buildjson () lemparan JSAPSCEPTION {// json format parsing objek parsing parsing Obyek jsonoBlect JsonOb () Object Map <String, String> map1 = new HashMap <String, String> (); map1.put ("name", "Alexia"); map1.put ("sex", "female"); peta1.put ("usia", "23"); peta <string, string> map2 = hashmap baru <string, string> (); peta. "Pria"); Map2.put ("Usia", "24"); Daftar <peta> Daftar = Daftar Array baru <peta> (); list.add (MAP1); List.add (MAP2); karyawan karyawan = karyawan baru (); karyawan.setname ("wjl"); karyawan.setsex ("wanita); karyawan. JSONArray();ja.put(map1);System.out.println("JSONArray object data format: ");System.out.println(ja.toString());// Convert Javabean to Json data (requires Map transit) JSONObject jo1 = JsonHelper.toJSON(employee);System.out.println("/nJson data format only contains Objek Karyawan: "); System.out.println (Jo1.ToString ()); // Bangun data JSON, termasuk peta dan data JSON yang berisi objek karyawan Jo.put (" peta ", JA); Jo.put (" karyawan ", JO1.TOSTRING ()); System.out.println ("/Non/NSOTRING FINAL ()); System.out.println ("/NONE DATA FINAL. ");System.out.println(jo.toString());return jo.toString();}/*** parse Json data * * @param jsonString* Json data string* @throws JSONException* @throws ParseException*/public static void ParseJson(String jsonString) throws JSONException,ParseException {JSONObject jo = new JsonObject (jsonstring); jsonarray ja = jo.getjsonarray ("peta"); System.out.println ("/n Parses data JSON ke peta:"); System.out.println ("name:" + ja.getJon (0) .getString ("name") + "name:" sex: "name:" a name. Umur: " + ja.getjsonObject (0) .getInt (" usia ")); string jsonstr = jo.getString (" karyawan "); karyawan emp = karyawan baru (); jsonhelper.tojavabean (emp, jsonstr); sistem.out.println ("/n Parse JSON Data JSON ke dalam objek karyawan: ");" nameP. "name." "Sex:" + emp.getSex () + "Umur:" + emp.getage ());}/*** @param args* @throws jsonexception* @throws parseException*/public static void Main (string [] argo-}} {//} {} {} {} { @o. {/{publon {/publon {//publdo {// @noute {/{ @neute (string) {//publdo {//) Hasil operasi adalah sebagai berikut
5. Perbandingan dengan JSON-LIB
Penggunaan json-lib dan org.json hampir sama. Saya telah merangkum dua perbedaan:
1. Org.json jauh lebih ringan dari json-lib. Yang pertama tidak bergantung pada paket toples lainnya, sedangkan yang terakhir tergantung pada lang, logging, beanutils, koleksi dan komponen lain dari Ezmorph dan Commons.
2. JSON-LIB jauh lebih nyaman daripada org.json saat membangun kacang dan memarsing kacang. JSON-LIB dapat secara langsung dikonversi dengan kacang, sementara org.json tidak dapat secara langsung mengonversi dengan kacang dan membutuhkan peta sebagai transit. Jika Anda mengonversi kacang menjadi data JSON, Anda harus terlebih dahulu mengonversi kacang menjadi peta dan kemudian mengonversi peta ke JSON, yang lebih merepotkan.
Singkatnya, kalimat yang sama masih merupakan hal terbaik untuk Anda. Setiap orang harus memilih metode mana yang akan digunakan untuk menganalisisnya sesuai kebutuhan. Akhirnya, saya akan memperkenalkan dua alat untuk menganalisis data JSON: satu adalah alat online JSON Edit (http://braincast.nl/samples/jsoneditor/); Yang lainnya adalah Eclipse Plugin JSON Tree Analyzer, yang keduanya sangat berguna dan direkomendasikan untuk digunakan semua orang!
Di atas adalah pengetahuan yang relevan dari dua metode (penjelasan terperinci) yang digunakan oleh editor untuk memperkenalkan kepada Anda tentang Java untuk membangun dan mem -parsing data JSON. Saya harap ini akan membantu Anda!