总结来源:http://www.lvyestudy.com/json/json.aspx(绿叶学习网)
JSON
一. JSON简介1. JSON,全称“JavaScript Object Notation(JavaScript 对象表示法)"。是 JavaScript 用来处理数据的一种格式,这种格式非常简单易用,不过没有 XML 通用。
2. JSON,大部分都是用来处理 JavaScript 和 web 服务器端之间的数据交换,把后台 web 服务器的数据传递到前台,然后使用 JavaScript 进行处理,例如 ajax 等。
3. JSON 支持的语言非常多,包括 JavaScript、C#、PHP、Java 等等,这是由于 JSON 独立于语言的轻量级的数据交换格式,这个特点有点类似于 SQL 语言。
4. JSON,就是一种数据传输格式而已,无它,非常容易掌握。但是大家不要误以为 JSON 最大的用处是在前端,其实 JSON 最大的用处是处理 JavaScript 和 web 服务器端之间数据交换。
二. JSON的对象结构和数组结构
1. JSON,简单来说就是 JavaScript 中的对象或数组,所以这两种结构就是对象和数组。通过这两种结构就可以表示各种复杂的结构。
2. 对象结构
(1). 语法:
var jsonObj = {
"键名1":值1, //(key:value)。这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑 true 和 false。
jsonObj2 = {
"键名1":值1, //JSON 对象内部还可以嵌套 JSON 对象
……
"键名n":值n
}
……
"键名n":值n
}
(2). 从 JSON 中读数据
①. jsonObj.key
②. jsonObj["key"]
(3). 向 JSON 写数据
①. jsonObj.key = 值;
②. jsonObj["key"] = 值;
(4). 删除 JSON 中的数据
delete jsonObj.key;
(5). 遍历 JSON 对象
①. 使用 for…in… 循环来遍历 JSON 对象中的数据。
②. 实例:
var obj = {
"name":"helicopter",
"age":23,
"gender":"男",
}
for(var c in obj) {
if(c=="name") {
document.write("姓名是:"+obj[c]); //由于变量 c 是字符串,因此不能使用 obj.c 来获取 JSON 数据,而必须使用 obj[c] 来获取 JSON 数据。
}
}
3. 数组结构
(1). 语法:
var arr = [
{
"键名1":值1,
"键名2":值2,
...
},
{
"键名3":值3,
"键名4":值4,
...
},
……
]
(2). 从 JSON 中读数据
①. jsonObj[index].key
②. jsonObj[index]["key"]
(3). 向 JSON 写数据
①. jsonObj[index].key = 值;
②. jsonObj[index]["key"] = 值;
(4). 删除 JSON 中的数据
delete jsonObj[index].key;
(5). 遍历 JSON 对象
①. 使用 for…in… 循环来遍历 JSON 对象中的数据。
②. 实例:
var arr = [
{
"键名1":值1,
"键名2":值2,
...
},
{
"键名3":值3,
"键名4":值4,
...
},
……
]
for(var o in arr) {
document.write(obj[o].key);
}
(6). 如果使用 delete 关键字删除了 arr[0] 。删掉之后如果想要获取 arr[0] 就会报错。
三. JSON 对象和 JSON 字符串
1. JSON 字符串
(1). JSON 字符串,指的是符合“ JSON 格式”的字符串。
(2). JSON 字符串要求两点:
①. 必须是字符串,也就是要用单引号或双引号括起来;
②. 必须符合“JSON”格式。
(3). 实例:
var jsonStr = '{"name": "helicopter", "age":23, "gender": "男"}';
2. JSON 对象转换为 JSON 字符串
(1). 使用 JSON.stringify() 方法将 JSON 对象转换为 JSON 字符串。
(2). 语法:
JSON.stringify(JSON 对象名);
3. 将 JSON 字符串转换为JSON对象
(1). 在 JavaScript 中,将 JSON 字符串转换为 JSON 对象非常有用。一般,在 Web 服务器后台向前台传输数据的过程中,往往都是用字符串形式来传输 JSON 数据。如果我们在前台想要获取 JSON 数据,就必须将 JSON 字符串转换为 JSON 对象才能操作。
(2). 现在大多数浏览器( IE8 及以上,Chrome 和 Firefox 差不多全部)自带原生 JSON 对象,提供 JSON.parse() 方法来将 JSON 字符串转换为 JSON 对象。
(3). 语法:
JSON.parse(字符串名);