JSON 教程
- 第1节:JSON 简介
- 第2节:JSON 语法
- 第3节:JSON 使用
- 第4节:JSONP 教程
- 第5节:JSON 数据类型
- 第6节:JSON 对象
- 第7节:JSON 模式
- 第8节:JSON 与 XML 对比
- 第9节:JSON 基础结构
- 第10节:JSON 数据格式
- 第11节:JSON 数据解析的方法
- 第12节:JSON 数据解析过程详解
- 第13节:JSON 解析URL参数
- 第14节:JSON 元素的添加删除
- 第15节:JSON 数据解析的3种方式
- 第16节:JavaScript 解析Json字符串的性能比较分析代码
- 第17节:JavaScript解析json格式数据简单示例
- 第18节:JSON数据遍历之for-in
- 第19节:jQuery 遍历Json的实现代码
- 第20节:JS遍历Json字符串
- 第21节:直接在JS里创建JSON数据然后遍历使用
- 第22节:JS循环遍历JSON数据的方法
- 第23节:js 遍历json返回的map内容示例代码
- 第24节:JSP+jquery使用ajax方式调用json的实现方法
- 第25节:jquery中的ajax方法怎样通过JSONP进行远程调用
- 第26节:jquery ajax jsonp跨域调用实例代码
- 第27节:jQuery插件jQuery-JSONP开发ajax调用使用注意事项
- 第28节:json的键名为数字时的调用方式
- 第29节:php跨域调用json的例子
- 第30节:jquery中ajax调用json数据的使用说明
- 第31节:ASP.NET(AJAX+JSON)实现对象调用
- 第32节:JavaScript转换与解析JSON方法实例详解
- 第33节:将JavaScript的jQuery库中表单转化为JSON对象的方法
- 第34节:javascript中JSON对象与JSON字符串相互转换实例
- 第35节:JavaScript中字符串(string)转json的方法
- 第36节:JavaScript将XML转成JSON的方法
- 第37节:java与javascript之间json格式数据互转介绍
- 第38节:转义字符(\)对JavaScript中JSON.parse的影响概述
- 第39节:JavaScript中json对象和string对象之间相互转化
- 第40节:javascript中将Object转换为String函数代码 (json str)
- 第41节:转换json格式的日期为Javascript对象的函数
- 第42节:AJAX跨域请求获取JSON数据
- 第43节:JS根据key值获取URL中的参数值
- 第44节:jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
- 第45节:js获取json元素数量的方法
- 第46节:JSONP获取Twitter和Facebook文章数的具体步骤
- 第47节:js获取通过ajax返回的map型的JSONArray的方法
- 第48节:JSP中获取ExtJS.Ajax前台传递的JSON数据实现过程
- 第49节:jQuery中使用Ajax获取JSON格式数据示例代码
- 第50节:JQuery 获取json数据$.getJSON方法的实例代码
- 第51节:javascript中JSON对象与JSON字符串相互转换实例
- 第52节:JavaScript中字符串(string)转json的方法
- 第53节:IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
- 第54节:使用JavaScript构建JSON格式字符串实现步骤
- 第55节:JavaScript 解析Json字符串的性能比较分析代码
- 第56节:javascript巧用eval函数组装表单输入项为json对象的方法
- 第57节:用javascript对一个json数组深度赋值示例
- 第58节:解析javascript 数组(以及json元素的添加删除)
- 第59节:js数组如何添加json数据
- 第60节:js/jquery解析json和数组格式的方法详解
JSON 对象
我们来看一个简单的 JSON 对象:
{ "name":"test", "alexa":8000, "site":null }
JSON 对象使用在大括号({}
)中书写,对象可以包含多个 key/value(键/值)对。
其中:
- key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
- key 和 value 中使用冒号(:)分割。
- 每个 key/value 对使用逗号(,)分割。
创建简单的对象
JSON 对象可以使用 JavaScript 创建。我们来看看使用 JavaScript 创建 JSON 对象的各种方式:
- 创建一个空对象:
var JSONObj = {};
- 创建一个新对象:
var JSONObj = new Object();
- 创建一个 bookname 属性值为字符串,price属性值为数字的对象。可以通过使用 '.' 运算符访问属性。
var JSONObj = { "bookname ":"VB BLACK BOOK", "price":500 };
这里有一个例子,展示了在 JavaScript 中使用 JSON 创建对象,可以将下面的代码保存为 json_object_test.htm:
注:.htm格式是早期的.html格式,此处内容无误。
<html>
<head>
<title>在JavaScript中使用JSON创建对象(test.cn)</title>
<script language="javascript" >
var JSONObj = { "name" : "编程狮(test.cn)", "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>
访问对象值
你可以使用点号(.)来访问对象的值:
实例
var myObj, x;
myObj = { "name":"test", "alexa":8000, "site":null };
x = myObj.name;
myObj = { "name":"test", "alexa":8000, "site":null };
x = myObj.name;
你也可以使用中括号([])来访问对象的值:
实例
var myObj, x;
myObj = { "name":"test", "alexa":8000, "site":null };
x = myObj["name"];
myObj = { "name":"test", "alexa":8000, "site":null };
x = myObj["name"];
循环对象
你可以使用 for-in 来循环对象的属性:
实例
var myObj = { "name":"test", "alexa":8000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += x + "
";
}
for (x in myObj) {
document.getElementById("demo").innerHTML += x + "
";
}
在 for-in 循环对象的属性时,使用中括号([])来访问属性的值:
实例
var myObj = { "name":"test", "alexa":8000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += myObj[x] + "
";
}
for (x in myObj) {
document.getElementById("demo").innerHTML += myObj[x] + "
";
}
创建数组对象
下面的例子展示了在 JavaScript 中使用 JSON 创建数组对象,可以将下面的代码保存为 json_array_object_test.htm:
<html>
<head>
<title>在 JavaScript 中使用 JSON 创建数组对象(test.cn)</title>
<script language="javascript" >
document.writeln("<h2>JSON数组对象(test.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>
嵌套 JSON 对象
JSON 对象中可以包含另外一个 JSON 对象:
myObj = {
"name":"test",
"alexa":10000,
"sites": {
"site1":"www.test.cn",
"site2":"m.test.cn",
"site3":"c.test.cn"
}
}
你可以使用点号(.)或者中括号([])来访问嵌套的 JSON 对象。
实例
x = myObj.sites.site1;
// 或者
x = myObj.sites["site1"];
// 或者
x = myObj.sites["site1"];
修改值
你可以使用点号(.)来修改 JSON 对象的值:
实例
myObj.sites.site1 = "www.test.cn";
你可以使用中括号([])来修改 JSON 对象的值:
实例
myObj.sites["site1"] = "www.test.cn";
JSON 对象和字符串的区别
JSON 对象和 JSON 字符串的区别:
JSON 对象
var str2 = { "name": "asan", "sex": "man" };
JSON 字符串
var str1 = '{ "name": "deyuyi", "sex": "man" }';