JSON 語法

1、JSON: JavaScript Object Notation (JavaScript 對象表示法)。html

      JSON是存儲和交換文本信息的語法。ajax

      JSON獨立於語言*json

1 {
2     「sites」:[
3         {'name':'菜鳥教程'  , 'url':'www.runoob.com'},
4     ]
5 }

  JSON轉換爲 JavaScript 對象數組

    JSON 文本格式在語法上與建立 JavaScript 對象的代碼相同。服務器

    因爲這種類似性,無需解析器,JavaScript 程序可以使用內建的 eval() 函數,用 JSON 數據來生成原生的 JavaScript 對象。函數

  使用JSONthis

    讀取JSON字符串;google

           用eval()處理JSON字符串。url

 

2、JSON語法spa

     JSON語法是JavaScript語法的子集。

    語法規則:

                數據在鍵值對中

                數據由逗號隔開

               大括號保存對象

                中括號保存數組

     JSON值:

                數字、字符串、布爾值、數組、對象、null

 

3、JSON對象

{ "name":"runoob", "alexa":10000, "site":null }

    訪問對象值:

var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
x = myObj.name;

x = myObj["name"];

  循環對象:

1 var myObj = { "name":"runoob", "alexa":10000, "site":null };
2 for (x in myObj) {
3     document.getElementById("demo").innerHTML += x + "<br>";
4 }

     嵌套JSON對象:[JSON對象中能夠嵌套JSON對象]

 1 myObj = {
 2     "name":"runoob",
 3     "alexa":10000,
 4     "sites": {
 5         "site1":"www.runoob.com",
 6         "site2":"m.runoob.com",
 7         "site3":"c.runoob.com"
 8     }
 9 }
10 
11 //訪問
12 x = myObj.sites.site1;
13 // 或者
14 x = myObj.sites["site1"];

     修改JSON對象:

1 myObj.sites.site1 = "www.google.com";
2 3 myObj.sites["site1"] = "www.google.com";

    刪除JSON對象:

 1 delete myObj.sites.site1; 2 3 delete myObj.sites["site1"] 

4、數組類同

5、JSON.parse()

      JSON與服務器交換數據,接受的通常是字符串。可使用JSON.parse()將數據轉換爲JavaScript對象。

  

JSON.parse(text);

  

<p id="demo"></p>
 
<script>
var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;
</script>

  從服務器端接受JSON:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myObj = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myObj.name;
    }
};
xmlhttp.open("GET", "/try/ajax/json_demo.txt", true);
xmlhttp.send();

  從服務器端接受數組JSON:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myArr = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myArr[1];
    }
};
xmlhttp.open("GET", "/try/ajax/json_demo_array.txt", true);
xmlhttp.send();

  

JSON 不能存儲 Date 對象。

若是你須要存儲 Date 對象,須要將其轉換爲字符串。

以後再將字符串轉換爲 Date 對象。

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.initDate = new Date(obj.initDate);
 
document.getElementById("demo").innerHTML = obj.name + "建立日期: " + obj.initDate;

  JSON 不容許包含函數,但你能夠將函數做爲字符串存儲,以後再將字符串轉換爲函數。

var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.alexa = eval("(" + obj.alexa + ")");
 
document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();

 

6、JSON.stringify  [將JavaScript對象轉化爲JSON字符串]

JSON.stringify(value[, replacer[, space]])

  因爲 JSON 語法是 JavaScript 語法的子集,JavaScript 函數 eval() 可用於將 JSON 文本轉換爲 JavaScript 對象。

var obj = eval ("(" + txt + ")");
相關文章
相關標籤/搜索