<object id="oakae"></object><object id="oakae"></object>
<bdo id="oakae"><label id="oakae"></label></bdo>
<code id="oakae"><samp id="oakae"></samp></code>
  • <code id="oakae"></code><input id="oakae"><label id="oakae"></label></input><bdo id="oakae"><samp id="oakae"></samp></bdo>

    JSON 對象 & JSONObject

    JSON 語法是 JavaScript 對象的表達方式,我們又簡單的分為JSONObjectJSONArray 其實都是JSON 對象的表達方式,只是從結構上做了區分。

    JSON 對象語法規則

    • 數據在名稱/值對中,如{"domain":"sojson.com"}
    • 可以多對鍵值對,如{"domain":"sojson.com","author":"soゝso","email":"[email protected]"}
    • 值里面可以有數組(Array),如{"domain_array":["sojson.com","soso.pub","soso.run","isoso.xin","isoso.xin"]}

    JSON 對象

    JSON 對象在花括號中,對象可以包含多個名稱/值對,如下代碼所示:

    {
        "name": "本兮",
        "age": 22,
        "birthday": "1994年6月30日",
    }

    這一點也容易理解,與這條 JavaScript 語句等價:

    name = "本兮";
    age = 22;
    birthday = "1994年6月30日";
    

    在上面的例子中,對象 "star_male" 是包含三個對象的數組。每個對象代表一條關于一個明星(姓名和年齡)的記錄。

    JSON 使用 JavaScript 獲取元素值

    因為 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);
    

    JSON 特殊Key,Number篇(1)

    當我們對象里有特殊的Key,或者不是字符串的Key,處理起來稍微有點麻煩。

    就上面的Demo,我們取name,那么就是json.name就可以取到“本兮”。其實很好理解這個點“.”就是類似于“的”的感覺,json的name。這么理解是不是很好理解?

    那么問題來了,如果JSON如下數據,你們可以試試。

    var json = {
        "1": {
            "name": "本兮",
            "age": "22"
        },
        "2": {
            "name": "關曉彤",
            "age": "20"
        }
    };
    alert(json.1.name);// X 錯誤 throw Uncaught SyntaxError;
    

    按我們剛剛的邏輯直接點,那么我們要取到“關曉彤”就應該是。json.1.name吧,但是你會發現報錯,錯誤信息應該是Uncaught SyntaxError,語法錯誤,請自行測試,那么正確應該怎么獲取呢?

    //正確的打開姿勢如下:
    alert(json[1].name);
    alert(json["1"].name);
    alert(json["1"]["name"]);
    //錯誤,undefined
    alert(json["1"][name]);
    

    其實上面看出了一個問題,那么就是數值可以不帶引號,String必須帶引號,再次強調:嚴格來講是雙引號,個別弱語言支持單引號。

    JSON 特殊Key,Number篇(2)

    嚴格來講是雙引號,個別弱語言支持單引號。還有一個問題就是,弱語言除了String類型,其他的明確類型不用單引號或者雙引號。把上面的Demo在弱語言里可以這么寫,比如在Javascript中可以這么寫,沒有任何瑕疵。

    var json = {
        1: {
            "name": "本兮",
            "age": "22"
        },
        2: {
            "name": "關曉彤",
            "age": "20"
        }
    }

    我們再來嘗試獲取一次。

    結果已經看到了,其實沒問題,所以要區分強弱語言的問題,建議還是強烈要求自己,按規范來,這樣肯定沒毛病。

    注意:其他的我就不多說了,其實都是一樣,比如boolen類型的Key,null類型的Key都是一樣的處理方式。

    支付掃碼

    所有贊助/開支都講公開明細,用于網站維護:贊助名單查看

    正在加載... ...

    甘肃11选5软件