JSON
JSON(JavaScript Object Notation)是表示值和对象的通用格式。在 RFC 4627 标准中有对其的描述。最初它是为 JavaScript 而创建的,但许多其他编程语言也有用于处理它的库。
因此,当客户端使用 JavaScript 而服务器端是使用 Ruby/PHP/Java 等语言编写 的时,使用 JSON 可以很容易地进行数据交换。
JavaScript 提供了如下方法:
JSON.stringify
将对象转换为 JSON。JSON.parse
将 JSON 转换回对象。
注意,JSON 编码的对象与对象字面量有几个重要的区别:
-
字符串使用双引号。JSON 中没有单引号或反引号。所以
'John'
被转换为"John"
。 -
对象属性名称也是双引号的。这是强制性的。所以
age:30
被转换成"age":30
。
JSON.stringify
也可以应用于原始(primitive)数据类型。
JSON 支持以下数据类型:
Objects { ... }
Arrays [ ... ]
Primitives:
strings,
numbers,
boolean values true/false
,
null
。
JSON.stringify
方法 JSON.stringify(student)
接收对象并将其转换为字符串。
得到的 json
字符串是一个被称为 JSON 编码(JSON-encoded) 或 序列化(serialized) 或 字符串化(stringified) 或 编组化(marshalled) 的对象。
JSON.parse
JSON.parse
将 JSON 转换回对象或数组。
对象:
'{"属性名":"属性值","属性名2":"属性值2","属性名3":"属性值3"}'
数组:
1.存储数组不是对象。
'[1,2,3,4]'
2.存储数组为对象
'[{"name":"亚索","age":"28","skill":"狂风绝息斩"},{"name":"劫","age":20,"skill":"瞬狱影杀阵"}]'
数字和布尔值可以不用带双引号
对象在转json字符串时,函数会被自动过滤掉。
parse() 这个方法会新创建一个对象或数组
实例:
var obj = {
name: "亚索",
user: "疾风剑豪",
skill: "狂风绝息斩"
}
// JSON.stringify 将对象转换为 JSON。
var str = JSON.stringify(obj);
// 更改原对象中name值
obj.name = "剑圣";
console.log(str);//'{"name":"亚索","user":"疾风剑豪","skill":"狂风绝息斩"}'
// 将为json字符串转化对象
var newobj = JSON.parse(str);
// 输出新对象中name的,值为(亚索);
// 注意:新生成的对象与,就就对象无关;在这里二者的地址不同
console.log(newobj.name);