一)什麼是JSON
(1)JSON(Java Script Object Notation(記號,標記))是一種輕量級的數據交換語言,
以文本字符串爲基礎,且易於讓人閱讀
注意:XML就是一個重量級的數據交換語言
(2)JSON採用完全獨立於任何程序語言的文本格式,使JSON成爲理想的數據交換語言
二)JSON的作用
(1)簡化創建自定義對象的方式
注意:JSON就是用JS語法來書寫,所以必須放在<script>標籤中
在用JS語法書寫JSON時,最外面不要用""雙引號
(2)在AJAX中,作爲數據載體之一
注意:JS可以直接解析JSON格式的文本,前提是:該JSON必須採用JS格式書寫的才行,如果該JSON是採用Java格式寫的,必須使用eval()函數轉換後,方可被JS解析,該eval("")函數接收一個字符串格式的內容。
(3)省份-城市-區域三級聯動【Struts2 + JSON版】
切記:將來JSON是不能完完全全替代XML的,只能在定義對象和數據交換語言方面替代
三)使用第三方工具,將JavaBean對象/List或Set或Map對象轉成JSON
準備導入第三方jar包:
》commons-beanutils-1.7.0.jar
》commons-collections-3.1.jar
》commons-lang-2.5.jar
》commons-logging-1.1.1.jar
》ezmorph-1.0.3.jar
》json-lib-2.1-jdk15.jar
(1)JavaBean----->JSON
》JSONArray jsonArray =JSONArray.fromObject(city);
》String jsonJAVA = jsonArray.toString();
(2)List<JavaBean>----->JSON
》JSONArray jsonArray =JSONArray.fromObject(cityList);
》String jsonJAVA =jsonArray.toString();
(3)List<String>----->JSON
》JSONArray jsonArray =JSONArray.fromObject(stringList);
》String jsonJAVA =jsonArray.toString();
(4)Set<JavaBean>----->JSON
》JSONArray jsonArray =JSONArray.fromObject(citySet);
》String jsonJAVA =jsonArray.toString();
(5)Map<String,Object>----->JSON
》JSONArray jsonArray =JSONArray.fromObject(map);
》String jsonJAVA =jsonArray.toString();
最後一個例子切記,將來jQuery-EasyUI-DataGrid組件時我們還要用到
將來,在企業中,就算脫離struts2的環境,也能用第三方工具,將Java類型轉成JSON文本
四)總結JSON的特點
(1)在客戶端(特指PC瀏覽器),直接使用JavaScript語言解析JSON,無需第三方jar包
(2)本質上,就是一個文本,只是該文本有特定的書寫格式
(3)可以使用第三方工具,將JavaBean對象或者List/Set/Map<JavaBean>對象轉成JSON
(4)優點:JSON與XML很相似,但是它更加輕巧,服務器只需發送一個html普通字符串,不用發送複雜的xml格式文檔了
(5)缺點:語法過於嚴謹,初學者可能覺得代碼不易讀,寫錯一點都不行
(6)JSON本質上,就是用JS語法寫的特殊文本記號,用JS可以直接解析