我們來(lái)看一個(gè)簡(jiǎn)單的 JSON 對(duì)象:
{ "name":"w3cschool", "alexa":8000, "site":null }
JSON 對(duì)象使用在大括號(hào)(?{}
?)中書(shū)寫(xiě),對(duì)象可以包含多個(gè) key/value(鍵/值)對(duì)。
其中:
JSON 對(duì)象可以使用 JavaScript 創(chuàng)建。我們來(lái)看看使用 JavaScript 創(chuàng)建 JSON 對(duì)象的各種方式:
var JSONObj = {};
var JSONObj = new Object();
var JSONObj = { "bookname ":"VB BLACK BOOK", "price":500 };
這里有一個(gè)例子,展示了在 JavaScript 中使用 JSON 創(chuàng)建對(duì)象,可以將下面的代碼保存為 json_object_w3cschool.htm:
注:.htm格式是早期的.html格式,此處內(nèi)容無(wú)誤。
<html>
<head>
<title>在JavaScript中使用JSON創(chuàng)建對(duì)象(w3cschool.cn)</title>
<script language="javascript" >
var JSONObj = { "name" : "編程獅(w3cschool.cn)", "time" : 2020 };
document.write("<h1>JSON和JavaScript的例子</h1>");
document.write("<h3>網(wǎng)站的名字="+JSONObj.name+"</h3>");
document.write("<h3>時(shí)間="+JSONObj.time+"</h3>");
</script>
</head>
<body>
</body>
</html>
現(xiàn)在讓我們嘗試使用 IE 或者任何其他啟用了 JavaScript 的瀏覽器打開(kāi)這個(gè)頁(yè)面,這會(huì)生成如下所示結(jié)果:
你可以使用點(diǎn)號(hào)(.)來(lái)訪(fǎng)問(wèn)對(duì)象的值:
你也可以使用中括號(hào)([])來(lái)訪(fǎng)問(wèn)對(duì)象的值:
你可以使用 for-in 來(lái)循環(huán)對(duì)象的屬性:
在 for-in 循環(huán)對(duì)象的屬性時(shí),使用中括號(hào)([])來(lái)訪(fǎng)問(wèn)屬性的值:
下面的例子展示了在 JavaScript 中使用 JSON 創(chuàng)建數(shù)組對(duì)象,可以將下面的代碼保存為 json_array_object_w3cschool.htm:
<html>
<head>
<title>在 JavaScript 中使用 JSON 創(chuàng)建數(shù)組對(duì)象(w3cschool.cn)</title>
<script language="javascript" >
document.writeln("<h2>JSON數(shù)組對(duì)象(w3cschool.cn)</h2>");
var books = {
"Pascal" : [
{ "Name" : "Pascal Made Simple", "price" : 700 },
{ "Name" : "Guide to Pascal", "price" : 400 }
],
"Scala" : [
{ "Name" : "Scala for the Impatient", "price" : 1000 },
{ "Name" : "Scala in Depth", "price" : 1300 }
]
}
var i = 0
document.writeln("<table border='2'><tr>");
for(i=0;i<books.Pascal.length;i++)
{
document.writeln("<td>");
document.writeln("<table border='1' width=100 >");
document.writeln("<tr><td><b>Name</b></td><td width=50>"
+ books.Pascal[i].Name+"</td></tr>");
document.writeln("<tr><td><b>Price</b></td><td width=50>"
+ books.Pascal[i].price +"</td></tr>");
document.writeln("</table>");
document.writeln("</td>");
}
for(i=0;i<books.Scala.length;i++)
{
document.writeln("<td>");
document.writeln("<table border='1' width=100 >");
document.writeln("<tr><td><b>Name</b></td><td width=50>"
+ books.Scala[i].Name+"</td></tr>");
document.writeln("<tr><td><b>Price</b></td><td width=50>"
+ books.Scala[i].price+"</td></tr>");
document.writeln("</table>");
document.writeln("</td>");
}
document.writeln("</tr></table>");
</script>
</head>
<body>
</body>
</html>
現(xiàn)在讓我們嘗試使用 IE 或者任意其他啟用了 JavaScript 的瀏覽器打開(kāi)這個(gè)頁(yè)面,和會(huì)生成如下所示結(jié)果:
JSON 對(duì)象中可以包含另外一個(gè) JSON 對(duì)象:
myObj = {
"name":"w3cschool",
"alexa":10000,
"sites": {
"site1":"eska-fuses.cn",
"site2":"m.w3cschool.cn",
"site3":"c.w3cschool.cn"
}
}
你可以使用點(diǎn)號(hào)(.)或者中括號(hào)([])來(lái)訪(fǎng)問(wèn)嵌套的 JSON 對(duì)象。
你可以使用點(diǎn)號(hào)(.)來(lái)修改 JSON 對(duì)象的值:
你可以使用中括號(hào)([])來(lái)修改 JSON 對(duì)象的值:
JSON 對(duì)象和 JSON 字符串的區(qū)別:
JSON 對(duì)象
var str2 = { "name": "asan", "sex": "man" };
JSON 字符串
var str1 = '{ "name": "deyuyi", "sex": "man" }';
更多建議: