Json之語法,格式


JSON 文本格式在語法上與創建 JavaScript 對象的代碼相同。
由於這種相似性,無需解析器,JavaScript 程序能夠使用內建的 eval() 函數,用 JSON 數據來生成原生的 JavaScript 對象。

JSON語法規則:

數據在 名稱/值 對仲
數據由逗號分隔
花括號保存對象
方括號保存數組

JSON 名稱/值 對介紹

"name":"張飛",
"age":23

Json的值可以是:

數字(整數或浮點數)
字符串(要包括在雙引號中)
邏輯值(true或false)
數組(在方括號中)
對象(在花括號中)

Json轉javascript對象的方法為:

eval("(" + str + ")");

代碼示例:

<html>
<head>
    <title>Json測試</title>
    <script src="/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        //基本上,Json返回的要么是對象,要么是數組,如果單純返回一個字符串,那么就沒有必要用Json了,因此
        //Json基本就下面這些可,不過要注意雙引號
        var str0 = "{employees:'測試'}";
        var obj0 = eval("(" + str0 + ")");
        alert(obj0.employees);          //輸出測試

        var str = "{name:'張三',Age:21}";
        var obj = eval("(" + str + ")");
        document.write(obj.name + obj.Age);   //輸出 張三21
        alert(obj.name);

        //別看下面那段Json長,其實是一個對象,屬性employees的值是一個對象數組。和上面的相比,只是name:張三  中的"張三"字符串 變成了對象數組而已
        var str2 = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "firstName":"George" , "lastName":"Bush" },' + '{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
        var obj2 = eval("(" + str2 + ")");
        alert(obj2.employees[0].firstName);     //彈出 Bill

        var str3 = "[1,2,3,4,5,6]";             //json 數組
        var obj3 = eval("(" + str3 + ")");      //輸出 2
        alert(obj3[1]);
    </script>
</head>
<body>
    <div id="div1">
    </div>
</body>
</html>

Json與JavaScript對象轉換 

  JSON轉javascript對象

//Json轉對象1
function JsonToObject(str) {
    return eval("(" + str + ")");
}

//Json轉對象2 
function strToJson(str){
    var json = (new Function("return " + str))();
    return json;
}

//Json轉對象3 jQuery工具函數
$.parseJSON()

  javascript對象轉JSON

//javascript對象轉Json
function ObjectToJson(o) {
    var arr = [];
    var fmt = function(s) {
        if (typeof s == 'object' && s != null) return json2str(s);
        return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
    }
    for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
    return '{' + arr.join(',') + '}';
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM