JavaScript是键值对式的创建对象。
JSON是一种数据格式,分为对象和数组两种。
JSON对象指的是符合JSON格式的对象,不是所有JavaScript对象都是JSON对象。
JSON字符串是 JSON 对象的字符串表示法,它使用文本表示一个 JSON 对象的信息,就是在JSON对象的基础上前后加上“ ‘ ”和“ ’ ”。
区别:
键名:
对象的键名本质也是字符串,符合标识名条件加不加引号无所谓,不符合标识名条件(如第一个字符为数字或含有空格和运算符)必须加引号。对象的键名若为数值,会自动转换为字符串;
JSON对象的键必须加双引号,同时也可以是整数。
值:
对象的值是任意的;
JSON对象的值是除方法、undefined类型、NaN以外的任意值。
传输:
对象不能传输;
JSON字符串可以跨平台数据传输,形式简单,速度快,JSON对象可转为JSON字符串传输。
对象常用创建方式:
字面量:
var person = { name: "wyw",
age: 20,
Introduce: function (){ alert("My name is " + this.name + ".I'm " + this.age); } };
构造函数:
function Person() { this.name = "wyw"; //通过this关键字设置默认成员
var worker = 'coding'; //没有this关键字,对象创建后,该变量为非成员
this.age = 20;
this.Introduce = function () { alert("My name is " + this.name + ".I'm " + this.age); };
alert("My name is " + this.name + ".I'm " + this.age); };
var person = new Person();
object方式:
var person = new Object();
person.name = "wyw";
person.age = 20;
person.Introduce = function () { alert("My name is " + this.name + ".I'm " + this.age); };
person.Introduce();
JSON对象与JSON字符串的转化
要实现从JSON字符串转换为JS对象,使用 JSON.parse(string) 方法或eval("("+string+")")或string.parseJSON();
要实现从JS对象转换为JSON字符串,使用 JSON.stringify(object) 方法。