目录
1. json简介
1.1 什么是json?
1.2 JSON - 转换为 JavaScript 对象
1.3 与 XML 比较
与 XML 相同之处
与 XML 不同之处
1.4 为什么使用 JSON?
1.5 为什么 JSON 比 XML 更好?
2. JSON vs XML
3. JSON对象
4. 访问JSON对象值
4.1 使用点号 . 来访问对象的值
4.2 使用中括号([])来访问对象的值
4.3 循环对象 使用 for-in 来循环对象的属性
5. 嵌套 JSON 对象
5.1 修改值
5.2 删除对象属性
6. JSON 数组
6.1 数组作为 JSON 对象
6.2 JSON 对象中的数组
循环数组
目录
1. json简介
1.1 什么是json?
1.2 JSON - 转换为 JavaScript 对象
1.3 与 XML 比较
与 XML 相同之处
与 XML 不同之处
1.4 为什么使用 JSON?
1.5 为什么 JSON 比 XML 更好?
2. JSON vs XML
3. JSON对象
4. 访问JSON对象值
4.1 使用点号 . 来访问对象的值
4.2 使用中括号([])来访问对象的值
4.3 循环对象 使用 for-in 来循环对象的属性
5. 嵌套 JSON 对象
5.1 修改值
5.2 删除对象属性
6. JSON 数组
6.1 数组作为 JSON 对象
6.2 JSON 对象中的数组
6.3 循环数组
7. JSON的应用领域
JSON: JavaScript Object Notation(JavaScript 对象表示法)
JSON 是存储和交换文本信息的语法,类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON 易于人阅读和编写。
C、Python、C++、Java、PHP、Go等编程语言都支持 JSON。
json 是一种轻量级的数据交换格式。
轻量级指的是跟 xml 做比较。
数据交换指的是客户端和服务器之间业务数据的传递格式。
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。
由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。
对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:
使用 XML
使用 JSON
XML 比 JSON 更难解析。
JSON 可以直接使用现有的 JavaScript 对象解析。
针对 AJAX 应用,JSON 比 XML 数据加载更快,而且更简单:
使用 XML
使用 JSON
JSON 和 XML 都用于接收 web 服务端的数据。
JSON 和 XML在写法上有所不同,如下所示:
json:
{
"sites": [
{ "name":"菜鸟教程" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
}
xml:
菜鸟教程 www.runoob.com
google www.google.com
微博 www.weibo.com
JSON 与 XML 的相同之处:
JSON 与 XML 的不同之处:
最大的不同是:XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。
{ "name":"runoob", "alexa":10000, "site":null }
JSON 对象使用在大括号 {...} 中书写。
对象可以包含多个 key/value(键/值)对。
key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
key 和 value 中使用冒号 : 分割。
每个 key/value 对使用逗号 , 分割。
var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
x = myObj.name;
var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
x = myObj["name"];
var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += x + "
";
}
在 for-in 循环对象的属性时,使用中括号([])来访问属性的值:
var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += myObj[x] + "
";
}
JSON 对象中可以包含另外一个 JSON 对象:
myObj = {
"name":"runoob",
"alexa":10000,
"sites": {
"site1":"www.runoob.com",
"site2":"m.runoob.com",
"site3":"c.runoob.com"
}
}
你可以使用点号 . 或者中括号 [...] 来访问嵌套的 JSON 对象
x = myObj.sites.site1;
// 或者
x = myObj.sites["site1"];
你可以使用点号 . 来修改 JSON 对象的值
myObj.sites.site1 = "www.google.com";
使用中括号 [...] 来修改 JSON 对象的值:
myObj.sites["site1"] = "www.google.com";
使用 delete 关键字来删除 JSON 对象的属性
delete myObj.sites.site1;
使用中括号 [...] 来删除 JSON 对象的属性
delete myObj.sites["site1"]
[ "Google", "Runoob", "Taobao" ]
JSON 数组在中括号中书写。
中括号 [] 保存的数组是值(value)的有序集合。一个数组以左中括号 [ 开始, 右中括号 ] 结束,值之间使用逗号 , 分隔。
JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
JavaScript 中,数组值可以是以上的 JSON 数据类型,也可以是 JavaScript 的表达式,包括函数,日期,及 undefined。
对象属性的值可以是一个数组
{
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}
使用索引值来访问数组
x = myObj.sites[0];
你可以使用 for-in 来访问数组
for (i in myObj.sites) {
x += myObj.sites[i] + "
";
}
也可以使用 for 循环:
for (i = 0; i < myObj.sites.length; i++) {
x += myObj.sites[i] + "
";
}