JSON 語法是 JavaScript 對象的表達(dá)方式,我們又簡單的分為JSONObject 和 JSONArray 其實都是JSON 對象的表達(dá)方式,只是從結(jié)構(gòu)上做了區(qū)分。
PS:如果您是要得到Java中 JSON-Lib 中 JSONObject 的相關(guān)信息,請點擊這個鏈接==>JSONObject。
{"domain":"sojson.com"}
{"domain":"sojson.com","author":"soゝso","email":"i@itboy.net"}
{"domain_array":["sojson.com","soso.pub","soso.run","isoso.xin","isoso.xin"]}
JSON 對象在花括號中,對象可以包含多個名稱/值對,如下代碼所示:
{ "name": "本兮", "age": 22, "birthday": "1994年6月30日", }
這一點也容易理解,與這條 JavaScript 語句等價:
name = "本兮"; age = 22; birthday = "1994年6月30日";
在上面的例子中,對象 "star_male" 是包含三個對象的數(shù)組。每個對象代表一條關(guān)于一個明星(姓名和年齡)的記錄。
因為 JSON 使用 JavaScript 語法,所以無需額外的軟件就能處理 JavaScript 中的 JSON。
var json = { "name": "本兮", "age": "22" }
獲取name和age:
var name = json.name; alert("name:" + json.name); var age = json.age; alert("age:" + json.age);
當(dāng)我們對象里有特殊的Key,或者不是字符串的Key,處理起來稍微有點麻煩。
就上面的Demo,我們?nèi)ame,那么就是json.name
就可以取到“本兮”。其實很好理解這個點“.”就是類似于“的”的感覺,json的name。這么理解是不是很好理解?
那么問題來了,如果JSON如下數(shù)據(jù),你們可以試試。
var json = { "1": { "name": "本兮", "age": "22" }, "2": { "name": "關(guān)曉彤", "age": "20" } }; alert(json.1.name);// X 錯誤 throw Uncaught SyntaxError;
按我們剛剛的邏輯直接點,那么我們要取到“關(guān)曉彤”就應(yīng)該是。json.1.name
吧,但是你會發(fā)現(xiàn)報錯,錯誤信息應(yīng)該是Uncaught SyntaxError
,語法錯誤,請自行測試,那么正確應(yīng)該怎么獲取呢?
//正確的打開姿勢如下: alert(json[1].name); alert(json["1"].name); alert(json["1"]["name"]); //錯誤,undefined alert(json["1"][name]);
其實上面看出了一個問題,那么就是數(shù)值可以不帶引號,String必須帶引號,再次強調(diào):嚴(yán)格來講是雙引號,個別弱語言支持單引號。
嚴(yán)格來講是雙引號,個別弱語言支持單引號。還有一個問題就是,弱語言除了String類型,其他的明確類型不用單引號或者雙引號。把上面的Demo在弱語言里可以這么寫,比如在Javascript中可以這么寫,沒有任何瑕疵。
var json = { 1: { "name": "本兮", "age": "22" }, 2: { "name": "關(guān)曉彤", "age": "20" } }
我們再來嘗試獲取一次。
結(jié)果已經(jīng)看到了,其實沒問題,所以要區(qū)分強弱語言的問題,建議還是強烈要求自己,按規(guī)范來,這樣肯定沒毛病。
注意:其他的我就不多說了,其實都是一樣,比如boolen類型的Key,null類型的Key都是一樣的處理方式。
版權(quán)所屬:SOJSON(原創(chuàng)文章)
原文地址:http://zijieyoumin.cn/json/json_object.html
轉(zhuǎn)載時必須以鏈接形式注明原始出處及本聲明。
綜合技術(shù)交流:點擊加入--> [SO JSON官方交流①群][收費]
綜合技術(shù)交流:點擊加入--> [SO JSON官方交流②群][免費]
要求:不能發(fā)廣告、暴力、政治、付費教程,違者直接踢出。
備注:入群費用5元,沒有QQ錢包,可以先支付寶
or 微信
掃碼支付5元贊助后,我拉您進(jìn)去。QQ聯(lián)系我。
掃碼贊助:贊助二維碼。
技術(shù)交流QQ群:①群259217951,②群166848545
站長郵箱:so@sojson.com
對頁面內(nèi)容有任何疑問和建議,請聯(lián)系我們。
所有贊助/開支都講公開明細(xì),用于網(wǎng)站維護:贊助名單查看
正在加載... ...