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>

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>