王德貴
在學(xué)習(xí)編程或是在程序開發(fā)過程中,不論使用什么樣的語言或工具比如Java、Python、C/C++、APPInventor以及樹莓派等,都可以直接或通過調(diào)用API接口用到JSON數(shù)據(jù)。我通過對(duì)JSON數(shù)據(jù)的實(shí)際應(yīng)用,認(rèn)為JSON這種數(shù)據(jù)格式越來越重要,也是以后數(shù)據(jù)處理的發(fā)展趨勢(shì)。
現(xiàn)在大量的API數(shù)據(jù)均為JSON格式,這給普通開發(fā)者帶來了福音,對(duì)于剛剛接觸一些數(shù)據(jù)的初期開發(fā)者來說,相對(duì)于XML還是JSON格式更容易理解一些。
1.JSON及特點(diǎn)
JSON全稱JavaScript Object Notation,JavaScript對(duì)象表示法。類似于XML但JSON 比XML更小、更快、更易解析。JSON是一種與開發(fā)語言無關(guān)的、輕量級(jí)的數(shù)據(jù)格式。采用完全獨(dú)立于語言的文本格式,是一種理想的數(shù)據(jù)交換格式。同時(shí),JSON是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON數(shù)據(jù)不需要任何特殊的 API 或工具包。優(yōu)點(diǎn)是易于人閱讀和編寫,同時(shí)也易于解析和生成。它是基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個(gè)子集。
2.重要性
JSON是Douglas Crockford在2001年開始推廣使用的數(shù)據(jù)格式,在2005年-2006年正式成為主流的數(shù)據(jù)格式,雅虎和谷歌就在那時(shí)候開始廣泛地使用JSON格式。
當(dāng)你在學(xué)習(xí)APPInventor過程中就會(huì)涉及到調(diào)用API(應(yīng)用程序接口)的JSON數(shù)據(jù)。通過對(duì)JSON數(shù)據(jù)的學(xué)習(xí)運(yùn)用,你會(huì)發(fā)覺JSON數(shù)據(jù)格式越來越重要,這也是以后數(shù)據(jù)處理的發(fā)展趨勢(shì),在相應(yīng)的領(lǐng)域也會(huì)得到廣泛應(yīng)用。
1.對(duì)象
在JavaScript中是使用花括號(hào){}包裹起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為 {key1:value1, key2:value2, ...} 的鍵值對(duì)結(jié)構(gòu)。在面向?qū)ο蟮恼Z言中,key 為對(duì)象的屬性,value 為對(duì)應(yīng)的值。鍵名可以使用整數(shù)和字符串來表示。值的類型可以是任意類型。名稱用引號(hào)括起來;值如果是字符串則必須用括號(hào),數(shù)值型則不須要。
例如:var o={"姓名":"wdg","學(xué)生":Ture,"密碼":123456,"愛好":["籃球","唱歌"],"生日":"2010-08-20"}
換成下列格式更清晰明了,更容易理解(圖1):
2.數(shù)組
數(shù)組在JavaScript中是方括號(hào)[]包裹起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為["Python", "C++", "APPInventor", ...] 的索引結(jié)構(gòu)。在 JS 中,數(shù)組是一種比較特殊的數(shù)據(jù)類型,它也可以像對(duì)象那樣使用鍵值對(duì),但還是索引使用得多。同樣,值的類型可以是任意類型。
例如:var jsonlist=[{"姓名":"wdg","學(xué)生":Ture,"密碼":123456,"愛好":["籃球","唱歌"],"生日":"2010-08-20"},{"姓名":"wzy","學(xué)生":Flase,"密碼":123456,"愛好":["舞蹈","畫畫"],"生日":"1988-01-24"}]
同樣換成下列格式更清晰明了,更容易理解(圖2):
這個(gè)列表,有2項(xiàng)格式相同的數(shù)據(jù),每項(xiàng)數(shù)據(jù)有5個(gè)鍵值對(duì)。
JSON 是 JS 對(duì)象的字符串表示法,它使用文本表示一個(gè) JS 對(duì)象的信息,本質(zhì)是一個(gè)字符串。
var obj={"a": "Hello", "b":"World"};//這是一個(gè)對(duì)象,注意鍵名也是可以不使用引號(hào)的。
var json='{"a":"Hello","b":"World"}';//這是一個(gè)JSON字符串,本質(zhì)是一個(gè)字符串。
下期我們將通過JSON與APPinventor的應(yīng)用案例進(jìn)一步理解JSON的重要性。