JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。语法
JSON.stringify(value[, replacer[, space]])
JSON.stringify(value[, replacer[, space]])参数说明:value:必需, 要转换的 JavaScript 值(通常为对象或数组)。replacer:可选。用于转换结果的函数或数组。如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。space:可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。返回值:
返回包含 JSON 文本的字符串。实例

var str = {"name":"菜鸟教程", "site":"http://www.runoob.com"}
str_pretty1 = JSON.stringify(str)
document.write( "只有一个参数情况:" );
document.write( "
" );
document.write("
" + str_pretty1 + "
" );

document.write( "
" );
str_pretty2 = JSON.stringify(str, null, 4) //使用四个空格缩进
document.write( "使用参数情况:" );
document.write( "
" );
document.write("
" + str_pretty2 + "
" ); // pre 用于格式化输出
var str = {"name":"菜鸟教程", "site":"http://www.runoob.com"}
str_pretty1 = JSON.stringify(str)
document.write( "只有一个参数情况:" );
document.write( "
" );
document.write("
" + str_pretty1 + "
" );

document.write( "
" );
str_pretty2 = JSON.stringify(str, null, 4) //使用四个空格缩进
document.write( "使用参数情况:" );
document.write( "
" );
document.write("
" + str_pretty2 + "
" ); // pre 用于格式化输出但是 IE6-7 下没有 JSON 对象,所以要借助json2.js来实现。今天我们来简单介绍下stringify方法的一些正确使用姿势吧。
当然,让高手们贱笑了,本文只是分享一些方法给新手朋友们。
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data);
console.log(str_json);
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data);
console.log(str_json);这个是我们日常用法,非常简单,对吧。比如说,我们的数据非常复杂,还有类似头像,昵称,个人签名之类的信息。
可是我保存在本地,只需要用户名,和性别,肿么破呢?
也许你会说 so easy, 遍历数据重新提取下即可。
例如:
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
for (var i=0, new_data=[]; i
new_data.push({

name: data[i].name,

sex: data[i].sex

});
}
var str_json = JSON.stringify(new_data);
console.log(str_json);
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
for (var i=0, new_data=[]; i
new_data.push({

name: data[i].name,

sex: data[i].sex

});
}
var str_json = JSON.stringify(new_data);
console.log(str_json);确实分分钟搞定。其实我们只需要用stringify第二个参数即可简单处理这种问题。
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data, ["name", "sex"]);
console.log(str_json);
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data, ["name", "sex"]);
console.log(str_json);第二个参数只要传入需要的keys数组,就非常轻松的就完成这种处理了。当然如果我们要更纠结的处理,比如要把 1,0 修改为男女,那么第二个参数可以用回调函数来处理。
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data, function (k, v) {

if (k === "sex") {

return ["女", "男"][v];

}

return v;
});
console.log(str_json);
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data, function (k, v) {

if (k === "sex") {

return ["女", "男"][v];

}

return v;
});
console.log(str_json);第二个参数如此强悍,为我们省去了不少麻烦。还有第三个参数,用于格式化字符串用的。
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data, null, "\t");
console.log(str_json);
str_json = JSON.stringify(data, ["name", "sex"], "\t");
console.log(str_json);
var data = [

{name: "王尼玛", sex:1, age: 30},

{name: "王尼美", sex:0, age: 20},

{name: "王大锤", sex:1, age: 30}
];
var str_json = JSON.stringify(data, null, "\t");
console.log(str_json);
str_json = JSON.stringify(data, ["name", "sex"], "\t");
console.log(str_json);其实,我觉得这是个非常鸡肋的功能,,一般情况下却是没啥用。好了,今天的分享就这些了,希望对新手朋友有所帮助。以上就是本文的全部内容,希望对大家的学习有所帮助。