天天看點

JavaScript、JSON

JavaScript、JSON

1.簡介

JSON(JavaScript Object Notation),是一種輕量級的資料交換格式,JSON是一種獨立的語言。JSON是用于存儲和傳輸資料的格式,通常用于服務端向網頁傳遞資料。

JSON使用JavaScript文法,但是JSON格式僅僅是一個文本,可以被任何程式設計語言讀取及作為資料式傳遞。

2.執行個體

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JSON</title>
</head>
<body>

<script>var x = {"sites":[
        //以下JSON文法定義了site對象:3條網站資訊(對象)的數組:
        {"name":"Alan_Lowe","url":"https://blog.csdn.net/qq_45985728"},
        {"name":"Google", "url":"www.google.com"},
        {"name":"Taobao", "url":"www.taobao.com"}
    ]}</script>

</body>
</html>      

這是定義了sites對象,它是一個對象數組。

JSON在文法上與建立JavaScript對象代碼相同,JavaScript程式可以很容易的将JSON資料轉換為JavaScript對象。

3.文法規則

  • 資料也是鍵值對(類似于C++的map等)
  • 資料由逗号分隔
  • 大括号儲存對象
  • 方括号儲存數組
  • 鍵值都應該放在雙引号中,中間加一個冒号

4.JSON字元串轉換為JavaScript對象|JSON.parse()

通常我們從伺服器中讀取 JSON 資料,并在網頁中顯示資料。簡單起見,我們網頁中直接設定 JSON 字元串首先,建立 JavaScript 字元串,字元串為 JSON 格式的資料:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JSON</title>
</head>
<body>

<script>var x = {"sites":[
        {"name":"Alan_Lowe","url":"https://blog.csdn.net/qq_45985728"},
        {"name":"Google", "url":"www.google.com"},
        {"name":"Taobao", "url":"www.taobao.com"}
    ]}
    // s就是x的字元串化
    var s = '{"sites":['
          + '{"name":"Alan_Lowe","url":"https://blog.csdn.net/qq_45985728"},'
          + '{"name":"Google", "url":"www.google.com"},'
          + '{"name":"Taobao", "url":"www.taobao.com"}'
          + ']}'</script>

</body>
</html>      

其中s就是x的字元串化,這樣操作過後,我們再使用JavaScript内置函數JSON.parse()就可以将字元串轉換為JavaScript對象:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JSON</title>
</head>
<body>

<script>var x = {"sites":[
        {"name":"Alan_Lowe","url":"https://blog.csdn.net/qq_45985728"},
        {"name":"Google", "url":"www.google.com"},
        {"name":"Taobao", "url":"www.taobao.com"}
    ]}
    // s就是x的字元串化
    var s = '{"sites":['
          + '{"name":"Alan_Lowe","url":"https://blog.csdn.net/qq_45985728"},'
          + '{"name":"Google", "url":"www.google.com"},'
          + '{"name":"Taobao", "url":"www.taobao.com"}'
          + ']}'
    // 使用JavaScript内置函數JSON.parse()就可以将字元串轉換為JavaScript對象
    var obj = JSON.parse(s);
    document.write(obj.sites[0].name + "  " + obj.sites[1].url);</script>

</body>
</html>      
JavaScript、JSON

5.JSON.stringify()

這個函數可以将JavaScript值轉換為JSON字元串:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JSON</title>
</head>
<body>

<script>var x = {"sites":[
        {"name":"Alan_Lowe","url":"https://blog.csdn.net/qq_45985728"},
        {"name":"Google", "url":"www.google.com"},
        {"name":"Taobao", "url":"www.taobao.com"}
    ]}
    // s就是x的字元串化
    var s = '{"sites":['
          + '{"name":"Alan_Lowe","url":"https://blog.csdn.net/qq_45985728"},'
          + '{"name":"Google", "url":"www.google.com"},'
          + '{"name":"Taobao", "url":"www.taobao.com"}'
          + ']}'
    // 使用JavaScript内置函數JSON.parse()就可以将字元串轉換為JavaScript對象
    var obj = JSON.parse(s);
    document.write(obj.sites[0].name + "  " + obj.sites[1].url);
    // 使用JSON.stringify()函數可以将JavaScript值轉換為JSON對字元串
    var ss = JSON.stringify(x);
    document.write(ss);</script>

</body>
</html>      

繼續閱讀