本文只讨论JavaScript环境下的JSON
渊源:
JSON(JavaScript Object Notion 或JavaScript对象表示法)是基于JavaScript的一种数据格式,一种语法,用来序列化简单值,对象与数组,请注意JavaScript不是JSON,JSON也不是JavaScript,'' JSON是JavaScript的一个子集'' 这句话起码是不严谨的,详见 JSON:并不是JavaScript 的子集。很多语言都有JSON。
对象与JSON的区别:
从格式上看,JavaScript中的对象有两种表示方法:
//第一种属性名不加引号
var obj = {
name: 'JOE',
age: 20,
sex: male
};
//第二种属性名加引号
var obj = {
"name": 'JOE',
"age": 20,
"sex": male
};
而JSON的格式如下,属性名要加而且只能加双引号,属性值如果是字符,只能用双引号,最后一个属性后不能加逗号。
{
"name":"JOE",
"age":20,
"sex":"male"
}
JSON对象:
JSON对象只有两个方法JSON.stringify(将对象序列化为JSON字符串)和JSON.parse(JSON字符串解析为对象),JSON本身不能被调用,或者作为构造函数使用,而且JSON对象也存在着浏览器兼容问题。在ES5之前JavaScript基本用eval()函数进行解析,但是这种方法是有风险的,ES5之后对它的解析有了规范,使用JSON.parse()方法。
var jsonString = '{"name":"Joe","age":16}';
console.log(JSON.parse(jsonString));
// {
name: "Joe", age: 16
}
var obj = {
name:'Joe',
age: 16
}
console.log(JSON.stringify(obj));
// 字符串形式的{"name":"Joe","age":16}