JSON的定義:
一種輕量級的數據交換格式,具有良好的可讀和便于快速編寫(xiě)的特性。業(yè)內主流技術(shù)為其提供了完整的解決方案(有點(diǎn)類(lèi)似于正則表達式 ,獲得了當今大部分語(yǔ)言的支持),從而可以在不同平臺間進(jìn)行數據交換。JSON采用兼容性很高的文本格式,同時(shí)也具備類(lèi)似于C語(yǔ)言體系的行為。 – Json.org
為什么用JSON?
很簡(jiǎn)單,因為它比xml快十倍。
有哪些應用案例?
Twitter、豆瓣、facebook等公司的開(kāi)放api,一般這些服務(wù)都會(huì )提供多種格式供開(kāi)發(fā)人員選擇(xml、json、atom等),而在手機終端上,我們自然希望給用戶(hù)最佳體驗,所以我選用最有效率的json格式
JSON的結構:
Name/Value Pairs 類(lèi)似所熟知的Keyed list、Hash table、Disctionary和Associative array。在A(yíng)ndroid平臺中同時(shí)存在另外一個(gè)類(lèi)“Bundle”,某種程度上具有相似的行為。
org.json.JSONObject Array,一組有序的數據列表。org.json.JSONArray
Android中 JSON相關(guān)的類(lèi)(4個(gè))和Exceptions(1個(gè)):
l JSONArray
l JSONObject
l JSONStringer
l JSONTokener
l JSONException
JSONObject:
這是系統中有關(guān)JSON定義的基本單元,其包含一對兒(Key/Value)數值。它對外部(External:應用toString()方法輸出的數值)調用的響應體現為一個(gè)標準的字符串(例如:{"JSON": "Hello, World"},最外被大括號包裹,其中的Key和Value被冒號":"分隔)。其對于內部(Internal)行為的操作格式略微,例如:初始化一個(gè)JSONObject實(shí)例,引用內部的put()方法添加數值:new JSONObject().put("JSON", "Hello, World!"),在Key和Value之間是以逗號","分隔。
get(): 在確定數值存在的條件下使用,否則當無(wú)法檢索到相關(guān)Key時(shí),將會(huì )拋出一個(gè)Exception信息。
opt(): 這個(gè)方法相對比較靈活,當無(wú)法獲取所指定數值時(shí),將會(huì )返回一個(gè)默認數值,并不會(huì )拋出異常。
JSONArray:
它代表一組有序的數值。將其轉換為String輸出(toString)所表現的形式是用方括號包裹,數值以逗號”,”分隔(例如:[value1,value2,value3],大家可以親自利用簡(jiǎn)短的代碼更加直觀(guān)的了解其格式)。這個(gè)類(lèi)的內部同樣具有查詢(xún)行為,get()和opt()兩種方法都可以通過(guò)index索引返回指定的數值,put()方法用來(lái)添加或者替換數值。
同樣這個(gè)類(lèi)的value類(lèi)型可以包括:Boolean、JSONArray、JSONObject、Number、String或者默認值JSONObject.NULL object。
JSONStringer:
根據官方的解釋?zhuān)@個(gè)類(lèi)可以幫助快速和便捷的創(chuàng )建JSON text。其最大的優(yōu)點(diǎn)在于可以減少由于格式的錯誤導致程序異常,引用這個(gè)類(lèi)可以自動(dòng)嚴格按照JSON語(yǔ)法規則(syntax rules)創(chuàng )建JSON text。每個(gè)JSONStringer實(shí)體只能對應創(chuàng )建一個(gè)JSON text。
根據下邊的實(shí)例來(lái)了解其它相關(guān)信息:
string myString = new JSONStringer().object()
.key("AR").value("www.Androidres.com!")
.endObject()
.toString();
結果是一組標準格式的JSON text:{”AR”:”www.Androidres.com!”}
其中的.object()和.endObject()必須同時(shí)使用,是為了按照Object標準給數值添加邊界。同樣,針對數組也有一組標準的方法來(lái)生成邊界.array()和.endArray()。
JSONTokener:
這個(gè)是系統為JSONObject和JSONArray構造器解析JSON source string的類(lèi),它可以從source string中提取數值信息。
JSONException:
是JSON.org類(lèi)拋出的異常信息。
聯(lián)系客服