首先回顧一下JSON:
JSON:JavaScript 對象表示法(JavaScript Object Notation)。
JSON 是存儲和交換文本信息的語法,類似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON中,我們首先要理解兩個最基本的概念,第一、對象,第二、數(shù)組。
JSON中,用 { }來描述一個對象,一個對象有不同的屬性,每個屬性都必須用 ""括起來,每個屬性對應(yīng)有屬性值,如果屬性值為字符串,則也用 ""括起來,如果屬性值為非字符串,則不用雙引號括起來;用 [ ] 來描述一個數(shù)組,數(shù)組可存儲多個對象,每個對象間用 , 隔開(以上所說的符號為英文半角符號)。
如描述一個員工對象:
JSON對象
描述一個員工對象數(shù)組:
JSON對象數(shù)組
如果對編寫的JSON字符串有疑慮,為了確保準(zhǔn)確性,可以使用JSON在線校驗工具檢查格式是否正確!
在哪些場景下,我們用JSON比較多呢?
場景一:在JavaScript中使用JSON對象,如
JavaScript中定義JSON對象及數(shù)組
JSON字符串時常需要轉(zhuǎn)換成JSON對象來處理,則我們可以使用eval函數(shù),如:
使用eval函數(shù)把JSON字符串轉(zhuǎn)換成JSON對象
在ECMAScript 5中提供了JSON JS對象,可以直接使用JSON.parse(jsonStr)把JSON字符串轉(zhuǎn)換成JSON對象,這個時候就不需要使用eval函數(shù)啦;也可以直接使用JSON.stringify(jsonObj);把JSON對象轉(zhuǎn)換成JSON字符串。
JSON對象與字符串的相互轉(zhuǎn)換
場景二:使用AJAX從前端把請求提交到后臺,在JavaEE Servlet中返回JSON字符串到前端,如
AJAX POST請求提交到后臺
后臺Servlet返回JSON字符串
我們可以看到如果JSON字符串由我們自己直接組裝那是相當(dāng)?shù)穆闊?,出錯的概率也很大,所以我們可以借助一些JSON處理的JAR包幫助我們在后臺完成Java對象到JSON字符串的轉(zhuǎn)換,如阿里巴巴提供的fastjson,Google提供的gson,還有json-lib等。
場景三:在Struts2中返回JSON字符串到前端,需要借助 struts-json-plugin插件
場景四:在SpringMVC中返回JSON字符串到前端,在需要返回JSON字符串的方法前加 @ResponseBody注解
場景五:使用QQ開放接口,微信支付等接口,接口返回的數(shù)據(jù)往往是JSON字符串
場景六:開發(fā)APP手機應(yīng)用,從手機應(yīng)用對應(yīng)的后臺服務(wù)返回的數(shù)據(jù)往往也是JSON字符串
場景七:對菜鳥程序員說,你會用JSON嗎?