Javascript中JSON格式对象和字符串的转换

在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来取值)

 

                   

你可能感兴趣的:(JavaScript,json,object,String,array)