JSON
1.0、参考
1.1、JSON对象的特点

我们不能显式的创建Math对象实例,直接使用它就可以了。 这个特点可以类比Java中的构造方法私有化,所有的属性和方法都是静态的。

1.1、JSON与ECMAScript对象的差别

JSONECMAScript对象之间是有一些差异的。

  • JSON中的key必须用"双引号扩起来, 而ECMAScript对象的key是不能用"双引号扩起来的。
  • JSON中的value如果是字符串类型的,只能使用"双引号扩起来, 不能用'单引号扩起来,而ECMAScript对象的value可以用'双引号扩起来的。
  • JSON中的value如果是数值类型,都是十进制的,不能是其他格式的, 而ECMAScript对象的value可以是其他进制的,比如八进制(0777)。

所以,我们需要在JSON字符串 和ECMAScriptObject之间进行转换。

1.2、String str = JSON.stringify(Object obj)

ECMAScript的任意Object转换成JSON字符串。JSON字符串适合在网络中传输。

示例:

var person = {
    name : 'Kent Beck',
    age : 070,
    gender : 'male',
    address : '美国俄勒冈州科瓦利斯市'
};

console.log(JSON.stringify(person));
//{"name":"Kent Beck","age":56,"gender":"male","address":"美国俄勒冈州科瓦利斯市"}
1.3、Object obj = JSON.parse(String json)

JSON字符串转换成ECMAScriptObject

示例:

var json = '{"name":"Kent Beck","age":56,"gender":"male","address":"美国俄勒冈州科瓦利斯市"}';
var person = JSON.parse(json);
with (person) {
    console.log("姓名:" + name + ",年龄:" + age + ",性别:" + gender + ",地址:" + address);
}
//姓名:Kent Beck,年龄:56,性别:male,地址:美国俄勒冈州科瓦利斯市