在Javascript中提供了专门的方法来实现JSON格式对象和字符串的转换
1、JSON.stringify():从一个JSON格式对象解析出字符串
语法: JSON.stirngify(value [, replacer] [, space])
参数value:必须,要转换的对象,例如数组、类等
参数 replacer:可选,分为2种方式,一种是方法,一种是数组
方法:(1)space:用空格做分隔符
(2)省略:没有分隔符
(3)数字:定义缩进几个字符,最大是10
(4)转义字符:例如”\t“表示每行一个回车
(5)字符串:每行输出加上这些字符串,最大10个字符
数组:若数组的值在要转换的对象中存在,则数组的值是key,要转换的对象的值是value,不存在将 被忽略
举例
例1 一个参数即要转换的对象
var student = new Object();
student.name = "Amy";
student.age = "25";
student.addr = "BJ";
var json_s = JSON.stringify(student);
alert(json_s);
输出结果为:{”name“:"Amy","age":"25","addr":"BJ"}
例2 一个参数即要转换的数组
var student = {};
student["name"] = "Amy";
student["age"] = "25";
var json_s = JSON.stringify(student);
alert(json_s);
输出结果为:{"name":"Amy","age":"25"}
例3 两个参数第一个是要转换的数组,第二个是方法
var students = new Array();
students[0] = "Amy";
student[1] = "Kelly";
var json_s = JSON.stringify(students, switchUpper);
function switchUpper(key, value) {
return value.toString().toUpperCase();
}
alert(json_s);
输出结果为:"AMY, KELLY"
例4 两个参数都是数组,只序列化第一个
var students = new Array(); students[0] = "Amy"; student[1] = "Kelly"; var stu = ["name","age"]; var json_s = JSON.stringify(students, stu); alert(json_s); 输出结果为:["Amy, Kelly"] (两个参数都是数组,只序列化第一个)
例5 两个参数第一个的对象,第二个是数组
var students = new Object();
students.name = "Amy";
student.age = "25";
student.addr = "BJ";
var stu =new Array();
stu[0] = "name";
stu[1] = "addr";
stu[2] = "ok";
var json_s = JSON.stringify(students, stu);
alert(json_s);
输出结果为:{"name":"Amy","addr":"BJ"}
(两个参数第一个的对象,第二个是数组,如果array中的值在object中存在的话,就以array的值为key,object的值为value,不存在的被忽略)
2、JSON.parse():从一个JSON格式字符串解析出对象
举例
var str = '{"name":"Amy","age":"25"}';
var json_o = JSON.parse(str);
alert(typeof(json_o));
输出为:Object age:"25";
name:"Amy";
_proto_:object
(可以通过json_o.name来取值)
498

被折叠的 条评论
为什么被折叠?



