一:json.stringify()
JSON.stringify(value [, replacer] [, space])
value:是必选字段。就是你输入的对象,比如数组,类等。
replacer:这个是可选的。它又分为2种方式,一种是数组,第二种是方法
space:用来做分隔符的。
1)只有第一个参数的情况下:
代码:
var student=new Object();
student.name="Lanny";
student.age="25";
student.location="China";
var json=JSON.stringify(student);
alert(json);
2)第二个参数存在且第二个参数为function时
代码:
var student=new Array();
student[0]="onepiece";
student[1]="naruto";
student[2]="bleach";
var json = JSON.stringify(student,switchUpper);
function switchUpper(key, value) { return value.toString().toUpperCase();}
alert(json);
二:json.parse()
语法:JSON.parse(text[, reviver])
参数:text 【必选,一个有效的字符串】
reviver【可选,一个转换结果的函数】
示例1:将JSON字符串转化为对象
代码:
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
document.write(contact.surname + ", " + contact.firstname);
输出结果为:Aaberg,Jesper
示例2:使用json.parse()遇见JS代码可直接解析出错误
综述以上了解,可知json.stringify()是将对象或者数组转化为字符串,json.parse()是将字符串转化为对象。
以下示例演示了如何使用 JSON.stringify 将数组转换成 JSON 字符串,然后使用 JSON.parse 将该字符串重新转换成数组。
输出结果:
与json.parse()相同用法的还有一个eval()函数,都是把JSON字符串转化为对象,同时也是一种解析方法。
示例:
var user="{'id':1001,'name':'张三'}";//
alert(user.id+" "+user.name);//测试得出“undefined”
var userObj=eval("("+user+")")
alert(userObj.id+" "+userObj.name);//使用eval函数之后测试出“1001 张三”
从以上例子可以得出,声明变量user不是一个json对象,需要使用eval()函数转化为json对象