对象
一个简单的JSON对象语法:
{ "name":"jsrun", "alexa":8000, "site":null }
JSON对象使用在大括号({})中书写,对象可以包含多个key / value(键/值)对。
其中:
- key必须是字符串,value可以是合法的JSON数据类型(字符串,数字,对象,数组,布尔值或null)。
- key和value中使用冒号(:)分割。
- 每个键/值对使用逗号(,)分割。
创建简单的对象
JSON对象可以使用JavaScript创建。我们来看看使用JavaScript创建JSON对象的各种方式:
创建一个空对象:
var JSONObj = {};
创建一个新对象:
var JSONObj = new Object();
创建一个BOOKNAME属性值为字符串,价格属性值为数字的对象。可以通过使用'' 运算符访问属性。
var JSONObj = { "bookname ":"VB BLACK BOOK", "price":500 };
这里有一个例子,展示了在JavaScript中使用JSON创建对象,可以将下面的代码保存为json_object_jsrun.htm:
<html>
<head>
<title>在JavaScript中使用JSON创建对象(jsrun)</title>
<script language="javascript" >
var JSONObj = { "name" : "小白教程(jsrun)", "time" : 2020 };
document.write("<h1>JSON和JavaScript的例子</h1>");
document.write("<h3>网站的名字="+JSONObj.name+"</h3>");
document.write("<h3>时间="+JSONObj.time+"</h3>");
</script>
</head>
<body>
</body>
</html>
现在让我们尝试使用IE或者任何其他启用了JavaScript的浏览器打开这个页面,这会生成如下所示结果:
JSON和JavaScript的例子
网站的名字=小白教程(jsrun)
时间2020
访问对象值
你可以使用点号(。)来访问对象的值:
实例
var myObj, x;
myObj = { "name":"jsrun", "alexa":8000, "site":null };
x = myObj.name;
你也可以使用中括号([])来访问对象的值:
实例
var myObj, x;
myObj = { "name":"jsrun", "alexa":8000, "site":null };
x = myObj["name"];
循环对象
你可以使用for-in来循环对象的属性:
实例
var myObj = { "name":"jsrun", "alexa":8000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += x + "
";
}
在for-in循环对象的属性时,使用中括号([])来访问属性的值:
实例
var myObj = { "name":"jsrun", "alexa":8000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += myObj[x] + "
";
}
创建清单对象
下面的示例展示了在JavaScript中使用JSON创建数组对象,可以将下面的代码保存为json_array_object_jsrun.htm:
<html>
<head>
<title>在 JavaScript 中使用 JSON 创建数组对象(jsrun)</title>
<script language="javascript" >
document.writeln("<h2>JSON数组对象(jsrun)</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>
嵌入JSON对象
JSON对象中可以包含另外一个JSON对象:
myObj = {
"name":"jsrun",
"alexa":10000,
"sites": {
"site1":"www.jsrun",
"site2":"m.jsrun",
"site3":"c.jsrun"
}
}
你可以使用点号(。)或者中括号([])来访问嵌套的JSON对象。
实例
x = myObj.sites.site1;
// 或者
x = myObj.sites["site1"];
修改值
你可以使用点号(。)来修改JSON对象的值:
实例
myObj.sites.site1 = "www.jsrun";
你可以使用中括号([])来修改JSON对象的值:
实例
myObj.sites["site1"] = "www.jsrun";
JSON对象和字符串的区别
JSON对象和JSON字符串的区别:
JSON对象
var str2 = {“ name”:“ asan”,“ sex”:“ man”};
JSON字符串
var str1 ='{“ name”:“ deyuyi”,“ sex”:“ man”}';