任何一套Web Framework,都會遇到一對多,甚至再一對多或多對多的編輯畫面,雖然各有自己解決方式,但學習門檻、普遍適用性問題,都得考慮是否值得投資時間學更複雜的用法。而JSON一出,我倒覺得可以一分為二,單一的Table的增改刪查可以依賴Web Framework既有的解決方案,而複雜關聯性的增刪改查,可以統一使用JSON,也比XML省空間。
我還是用net.sf.json-lib套件,在前端Post(或Get)到後端的變數是JSON格式字串,它若不是物件(Object)就是陣列(Array),其用法區分如下:
型態 | Java物件名 | 字串轉換成JSON | 若為空JSON |
Array | JSONArray | JSONArray jsonArray = JSONArray.fromObject(str) | [] |
Object | JSONObject | JSONObject jsonObject = JSONObject.fromObject(str) | {} |
fromObject這method相當於取得JSON的Root Node,若要從Root取得其子物件,method為get('key'),返回是一個物件,若想在取得時做型態轉換,尚有提供getString、getInt、getLong和getBoolean等;若是取得子陣列,則是getJSONArray,也是返回JSONArray物件。倘若JSONArray.fromObject(str)中的str開頭不是[開頭的會報錯。
fromObject的參數除了字串,也可以是JavaBean或List<JavaBean>或List<Map>,也就是JSON其實就是List+Map這兩個資料結構演化出來的。
全站熱搜