js中JSON数据转换成字符串,可以使用JSON.stringify()方法。
var obj = {name: "张三", age: 18, gender: "男"};
var jsonString = JSON.stringify(obj);
console.log(jsonString); // 输出 {"name":"张三","age":18,"gender":"男"}
另外,JSON.stringify()方法还支持第二个参数,用来控制生成的JSON字符串的格式。其中最常用的参数是一个数组,定义了需要排除的属性名:
var obj = {name: "张三", age: 18, gender: "男"};
var jsonString = JSON.stringify(obj, ["gender"]);
console.log(jsonString); // 输出 {"name":"张三","age":18}
在上面的代码中,我们传入了一个数组,数组中指定了需要排除的属性名。生成的JSON字符串中就没有了gender属性。需要注意的是,如果传入的不是一个数组,而是一个函数,这个函数需要返回一个新的值,用来替换需要转换成JSON字符串的原始值。
var obj = {name: "zhangsan", age: 18, gender: "男"};
function replacer(key, value) {if (typeof value === "string") {return value.toUpperCase();}return value;
}
var jsonString = JSON.stringify(obj, replacer);
console.log(jsonString); // 输出 {"name":"ZHANGSAN","age":18,"gender":"男"}
在上面的代码中,我们定义了一个函数replacer,这个函数接收两个参数,即属性名和属性值。如果属性值是字符串类型,就把它转换成大写字母。最后我们传入这个函数作为JSON.stringify()的第二个参数,生成的JSON字符串中的字符串会变成大写字母。