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