摘要:采用完全獨立于任何程序語言的文本格式,使成為理想的數據交換語言為什么需要提到,我們就應該和來進行對比。也是一種存儲和交換文本信息的手段。那么好在哪里呢比更小更快,更易解析。使用的時候,也支持將轉成但是,我們不一定使用框架來做開發呀。
什么是JSON
JSON:JavaScript Object Notation 【JavaScript 對象表示法】
JSON 是存儲和交換文本信息的語法。類似 XML。
JSON采用完全獨立于任何程序語言的文本格式,使JSON成為理想的數據交換語言S
為什么需要JSON提到JSON,我們就應該和XML來進行對比。XML也是一種存儲和交換文本信息的手段。那么JSON好在哪里呢??
JSON 比 XML 更小、更快,更易解析。
javaScript原生支持JSON,解析速度會很快
XML解析成DOM對象的時候,瀏覽器【IE和fireFox】會有差異
使用JSON會更簡單
更加容易創建JavaScript對象
var p = {"city":["北京","上海","廣州","深圳"]}; for(var i=0;iJSON語法"); }
客戶端與服務端的交互數據無非就是兩種
數組
對象
于是乎,JSON所表示的數據要么就是對象,要么就是數據
JSON語法是javaScript語法的子集,javaScript用[]中括號來表示數組,用{}大括號來表示對象,JSON亦是如此
JSON數組:var employees = [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName": "Carter" } ];JSON對象
var obj = { age: 20, str: "zhongfucheng", method: function () { alert("我愛學習"); } };
當然啦,數組可以包含對象,在對象中也可以包含數組
解析JSONjavaScript原生支持JSON的,我們可以使用eval()函數來解析JSON,把JSON文本數據轉換成一個JavaScript對象。
function test() { //在寫JOSN的時候,記得把帶上逗號 var txt = "{a:123," + "b:"zhongfucheng"}"; //使用eval解析JSON字符串,需要增添() var aa = eval("(" + txt + ")"); alert(aa); }效果 不用框架時將JavaBean轉成JSON
使用Strus2的時候,Struts2自帶了組件能夠讓JavaBean對象、集合轉成是JSON,不用我們自己拼接...這是非常方便的。
使用SpringMVC的時候,SpringMVC也支持將JavaBean轉成JSON
但是,我們不一定使用框架來做開發呀。因此,我們還得學習使用第三方庫來將JavaBean對象、集合轉成JSON
導入開發包commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-collections-3.1.jar
commons-beanutils-1.7.0.jar
ezmorph-1.0.3.jar
json-lib-2.1-jdk15.jar
事例代碼package cn.itcast.javaee.js.bean2json; import net.sf.json.JSONArray; import java.util.*; /** * 使用第三方工具,將JavaBean對象/List或Set或Map對象轉成JSON * @author AdminTC */ public class TestBean2Json { private static void javabean2json() { City city = new City(1,"廣州"); JSONArray jSONArray = JSONArray.fromObject(city); String jsonJAVA = jSONArray.toString(); System.out.println(jsonJAVA); //[{"id":1,"name":"廣州"}] } private static void list2json() { ListcityList = new ArrayList (); cityList.add(new City(1,"廣州")); cityList.add(new City(2,"珠海")); JSONArray jSONArray = JSONArray.fromObject(cityList); String jsonJAVA = jSONArray.toString(); System.out.println(jsonJAVA); //[{"id":1,"name":"廣州"},{"id":2,"name":"珠海"}] } private static void set2json() { Set citySet = new LinkedHashSet (); citySet.add(new City(1,"廣州")); citySet.add(new City(2,"珠海")); JSONArray jSONArray = JSONArray.fromObject(citySet); String jsonJAVA = jSONArray.toString(); System.out.println(jsonJAVA); //[{"id":1,"name":"廣州"},{"id":2,"name":"珠海"}] } private static void javabeanlist2json() { List cityList = new ArrayList (); cityList.add(new City(1,"中山")); cityList.add(new City(2,"佛山")); Province province = new Province(1,"廣東",cityList); JSONArray jSONArray = JSONArray.fromObject(province); String jsonJAVA = jSONArray.toString(); System.out.println(jsonJAVA); /* [ { "id":1, "name":"廣東" "cityList":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}], } ] */ } private static void map2json() { List cityList = new ArrayList (); cityList.add(new City(1,"中山")); cityList.add(new City(2,"佛山")); Map map = new LinkedHashMap (); map.put("total",cityList.size());//表示集合的長度 map.put("rows",cityList);//rows表示集合 JSONArray jSONArray = JSONArray.fromObject(map); String jsonJAVA = jSONArray.toString(); System.out.println(jsonJAVA); //[{"total":2,"rows":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}]}] jsonJAVA = jsonJAVA.substring(1,jsonJAVA.length()-1); System.out.println(jsonJAVA); } }
把要解析成JSON 的javaBena對象、集合放進下面這段代碼即可!
JSONArray jSONArray = JSONArray.fromObject(map);
無論放進去什么,返回的都是數組
總結如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章的同學,可以關注微信公眾號:Java3y
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71002.html
摘要:目錄前言架構安裝第一個爬蟲爬取有道翻譯創建項目創建創建解析運行爬蟲爬取單詞釋義下載單詞語音文件前言學習有一段時間了,當時想要獲取一下百度漢字的解析,又不想一個個漢字去搜,復制粘貼太費勁,考慮到爬蟲的便利性,這篇文章是介紹一個爬蟲框架, 目錄 前言 架構 安裝 第一個爬蟲:爬取有道翻譯 創建項目 創建Item 創建Spider 解析 運行爬蟲-爬取單詞釋義 下載單詞語音文件 ...
摘要:相信很多人在格式化字符串的時候都用的語法,提出一種更先進的格式化方法并成為的標準用來替換舊的格式化語法,從開始已經實現了這一方法其它解釋器未考證。 showImg(https://segmentfault.com/img/remote/1460000018650325); 相信很多人在格式化字符串的時候都用%s % v的語法,PEP 3101 提出一種更先進的格式化方法 str.for...
摘要:我們很容易發現,過濾器可以比喻成一張濾網。這究竟是怎么回事啊我們可以這樣理解過濾器不單單只有一個,那么我們怎么管理這些過濾器呢在中就使用了鏈式結構。第一種方式在文件中配置用于注冊過濾器用于為過濾器指定一個名字,該元素的內容不能為空。 什么是過濾器 過濾器是Servlet的高級特性之一,也別把它想得那么高深,只不過是實現Filter接口的Java類罷了! 首先,我們來看看過濾器究竟Web...
摘要:前言上一次我們對的應用進行了一次全面的分析,這一次我們來聊聊。 showImg(https://segmentfault.com/img/remote/1460000020077803?w=1280&h=853); 前言 上一次我們對Paging的應用進行了一次全面的分析,這一次我們來聊聊WorkManager。 如果你對Paging還未了解,推薦閱讀這篇文章: Paging在Recy...
閱讀 817·2021-11-22 15:25
閱讀 1413·2021-09-08 09:45
閱讀 1692·2021-09-02 09:46
閱讀 1302·2019-08-30 15:56
閱讀 1537·2019-08-29 15:14
閱讀 1163·2019-08-29 13:06
閱讀 2016·2019-08-29 12:34
閱讀 1403·2019-08-26 12:14