在ECMAScript中,把JSON对象解析为字符串使用的是内置JSON(内置)对象的stringify方法,而把JSON字符串解析为对象用的是parse方法。
JSON.stringify 方法科包含3个参数,第一个是要转化的JSON对象,第二个是过滤器,第三个是换行的缩进(最大为10)。
1 var user = '{"name":"Lily","id":"00909","hobby":["swimmimg","football","computer game"]}'; 2 var userObj = JSON.parse(user); 3 4 var test1 =JSON.stringify(userObj); 5 //输出"{"name":"Lily","id":"00909","hobby":["swimmimg","football","computer game"]}" 6 var test2 = JSON.stringify(userObj,["name","id"]); 7 //输出"{"name":"Lily","id":"00909"}" 8 var test3 = JSON.stringify(userObj,["name","id"],1); 9 /* 10 输出: 11 "{ 12 "name": "Lily", 13 "id": "00909" 14 }" 15 */
JSON对象的解析还可以自定义方法,方法是在对象中加入toJSON方法。
1 1 //首先给对象定义一个toJSON方法。 2 2 var userObj = {"name":"Lily","id":"00909","hobby":["swimmimg","football","computer game"],"toJSON":function(){return this.name + "->" + this.id;}}; 3 3 4 4 var test = JSON.stringify(userObj); 5 5 //输出为: ""Lily->00909"";
而对于JSON.parse方法,第二个参数可以是一个回调函数。