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 });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM