ajax中的json的使用

javaweb端的開發,服務器往往會和頁面進行一些進行一些小範圍的數據刷新或者提交,這時候在我們面前的問題就來了。

                 1.服務器端返回的數據是什麼類型的?使用response輸出一段看起來都會死掉很多腦細胞的html?沒有更好的形式嗎?

                  2.客戶端怎麼解析?用什麼解析?是不斷的新建html標籤,然後追加到某個div或table裏面?

好吧不裝逼了。

現在的ajax大家都很熟悉了,那麼這種異步交互給我們的開發和用戶體驗帶來了新的活力。不過還沒完,JSON又來了。這使得ajax變得更加的變態。下面就來見識見識吧。

         我相信大多數人現在使用異步交互還是使用JQuery封裝的,沒有那個傻x自己寫吧。

        JSON的格式其實很簡單,我的理解就是map和數組的結合體,以類似於鍵值對的方式存在:

              1.建和值之間用:隔開。

              2.同等地位的鍵值對使用,隔開。

              3.一個鍵對應多個值時這些鍵值對包括在[  ]內。

              4.取值的方式和我們使用的ognl基本類似,只是在遇到[ ]的鍵值對時使用[index],index表示索引位置,記住從0開始。

拿來看看例子吧:

          

var student={"name":"dongzheng","sex":"m"};

//獲取name的值使用
var name=student.name;
var student=[{"name":"dongzheng","sex":"m"},{"name":"xue","sex":"f"}];
//獲取第二個人的名字使用
  var name2=student[1].name;
var  student={"class1":
                        [
                         {"name":"dongzheng","sex":"m"}, 
                         {"name":"xue","sex":"f"}]};
//獲取class1的第一個學生的性別使用
var sex=student.class1[0].sex;

當然還有更復雜的形式,不過也無非是集合和鍵值對的嵌套使用,所以把一個複雜的格式分解成一小部分就可以了。這理解不多介紹了。

下面來介紹一下服務器端的使用。

在你的servlet或者action中使用response獲得輸出流來輸出數據是比較明智的選擇 ,但是並不意味只要拼接負責的html標籤。我們可以藉助這個開源的JSON 來實現。這時候我們可以到網上下載json的jar包。其中包括下面幾個:

                                 json-lib-jdk1.5.jar  -------json類庫的核心jar包。

                                ezmorph.jar----------------完成bean的複製功能。

還有一些apatche的一些像工具類的增強包和對javalang的增強等。

下面就是使用了:

          1.通常我們查詢到的都是結集合對象,所以我們先來看看集合對象怎麼來轉換成json。

           json爲我們提供了JSONArray這個類來給我們使用。

          

//list就是我們獲得的數據集合
JSONArray  jarray=JSONArray.fromObject(list);
//如果數據集合內的數據對象數據列太多,而且我們也用不到我們可以配置過濾器。
JsonConfig config=new JsonConfig();
config.setExcludes(new string[]{conlumnname});

下面就是利用response的流輸出了。

頁面端的ajax代碼我就不多做冗餘解釋了。無非就是JQuery封裝的那幾個方法。好了json的介紹就到這了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章