任何一套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這兩個資料結構演化出來的。

arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(1) 人氣()