qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Java中JSON的簡單使用與前端解析

            一、JSON
            JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 JSON采用完全獨立于語言的文本格式。這些特性使JSON成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成。
            JSON與XML的對比(引用自:sanpintian的CSDN博客):
            1、可讀性:JSON和XML的可讀性可謂不相上下,一邊是建議的語法,一邊是規范的標簽形式,很難分出勝負。
            2、可擴展性:XML天生有很好的擴展性,JSON當然也有,沒有什么是XML能擴展,JSON不能的。
            3、編碼難度:XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多,即使不借助工具也能寫出JSON的代碼,可是要寫好XML就不太容易了。
            4、解碼難度:XML的解析得考慮子節點父節點,讓人頭昏眼花,而JSON的解析難度幾乎為0。這一點XML輸的真是沒話說。
            5、流行度:XML已經被業界廣泛的使用,而JSON才剛剛開始,但是在Ajax這個特定的領域,未來的發展一定是XML讓位于JSON。到時Ajax應該變成Ajaj(Asynchronous Javascript and JSON)了。
            二、導包
            使用JSON需要導入以下包:
            commons-beanutils.jar
            commons-logging.jar
            commons-lang.jar
            commons-collection.jar
            ezmorph.jar
            json-lib.jar
            三、實現
            Book類的實現:
          1  public class Book {
          2     private String name;
          3     private double price;
          4
          5     public String getName() {
          6         return name;
          7     }
          8
          9     public void setName(String name) {
          10         this.name = name;
          11     }
          12
          13     public double getPrice() {
          14         return price;
          15     }
          16
          17     public void setPrice(double price) {
          18         this.price = price;
          19     }
          20
          21     @Override
          22     public String toString() {
          23         return name+" "+price;
          24     }
          25 }
          1 /**
          2  * @author ZWQ
          3  * **/
          4 public class JsonTest {
          5     public static void main(String[] args) {
          6         //***********************************************************************
          7         // json基本測試
          8         {
          9             //新建一個JSON數組
          10             JSONArray jsonArray = new JSONArray();
          11             //新建一個JSON對象
          12             JSONObject json1 = new JSONObject();
          13             json1.put("id", "1");
          14             json1.put("name", "張三");
          15             json1.put("password", "123456");
          16             //將JSON對象添加到JSON數組中去
          17             jsonArray.add(json1);
          18
          19             JSONObject json2 = new JSONObject();
          20             json2.put("id", "2");
          21             json2.put("name", "李四");
          22             json2.put("password", "654321");
          23             jsonArray.add(json2);
          24             System.out.println("json數組基本測試:" + jsonArray);
          25
          26             //結果:
          27             //[{"id":"1","name":"張三","password":"123456"},{"id":"2","name":"李四","password":"654321"}]
          28         }
          29
          30         //***********************************************************************
          31         //將對象轉成JSON字符串
          32         {
          33             Book book = new Book();
          34             book.setName("Java入門教程");
          35             book.setPrice(52.3);
          36             //將Java對象轉成JSON對象
          37             JSONObject jsonObject = JSONObject.fromObject(book);
          38             System.out.println("從Object到JSONObject:" + jsonObject.toString());
          39
          40             //結果:
          41             //從Object到JSONObject:{"name":"Java入門教程","price":52.3}
          42         }
          43
          44         //***********************************************************************
          45         //將對象集合轉成JSON字符串
          46         {
          47             List<Book> list = new ArrayList<Book>();
          48             Book book1 = new Book();
          49             book1.setName("高等數學I");
          50             book1.setPrice(34.1);
          51             Book book2 = new Book();
          52             book2.setName("線性代數");
          53             book2.setPrice(12.7);
          54             list.add(book1);
          55             list.add(book2);
          56             //將List集合轉為JSON數組
          57             JSONArray jsonArray= JSONArray.fromObject(list);
          58             System.out.println("從Object集合到JSONArray:" + jsonArray.toString());
          59
          60             //結果:
          61             //從Object集合到JSONArray:[{"name":"高等數學I","price":34.1},{"name":"線性代數","price":12.7}]
          62         }
          63
          64         //***********************************************************************
          65         // 將JSON字符串轉為Java對象
          66         {
          67             String jsonString = "{name:'數據結構',price:52.3}";
          68             JSONObject jsonObject = JSONObject.fromObject(jsonString);
          69             //將JSON對象轉為Java對象
          70             Book book = (Book) JSONObject.toBean(jsonObject, Book.class);
          71             System.out.println(book.toString());
          72
          73             //結果:
          74             //數據結構 52.3
          75         }
          76
          77         //***********************************************************************
          78         //將JSON字符串轉為Java對象數組
          79         {
          80             // (2).Bean的數組
          81             String jsonsString = "[{name:'數據庫基礎',price:52.3},{name:'Oracle 11g精華',price:42.3}]";
          82             JSONArray jsonArray = JSONArray.fromObject(jsonsString);
          83             //將JSON數組轉為Java對象數組
          84             Book[] books = (Book[]) JSONArray.toArray(jsonArray, Book.class);
          85             for (Book b : books) {
          86                 System.out.println(b.toString());
          87             }
          88
          89             //結果:
          90             //數據庫基礎 52.3
          91             //Oracle 11g精華 42.3
          92         }
          93     }
          94 }
            四、前端解析
          1 //Jquery提供的獲取json的方法
          2 //使用前先導入Jquery
          3
          4 $('#button').click(function(){
          5     //url:請求的地址
          6     $.getJSON('url', {
          7         //id是需要傳的參數
          8         id: 1
          9         }, function(data) {//成功后data即為獲取的json字符串
          10             //例如data:[{"name":"高等數學I","price":34.1},{"name":"線性代數","price":12.7}]
          11             alert("第二本書是:"+data[1].name+"  價格是:"+data[1].price);
          12         });
          13 });

          posted on 2014-06-13 10:09 順其自然EVO 閱讀(1690) 評論(0)  編輯  收藏 所屬分類: web 前端性能測試

          <2014年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台北市| 沙洋县| 汤阴县| 绵竹市| 奉节县| 乌拉特前旗| 宣恩县| 阜平县| 龙泉市| 开阳县| 威远县| 鹤山市| 芒康县| 安顺市| 青铜峡市| 和林格尔县| 涟源市| 枣阳市| 浦县| 南陵县| 石景山区| 藁城市| 平果县| 武宣县| 会宁县| 泽州县| 武冈市| 房产| 无棣县| 会昌县| 肃北| 郯城县| 瑞丽市| 卢龙县| 永丰县| 即墨市| 扬中市| 绥宁县| 平顶山市| 渝中区| 白水县|