JSON.stringify 方法

用过 json 的应该都知道,把一个对象通过 stringify 之后提交给后台或者存储在 Storage 里是很常用的手段。
但是 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);

这个是我们日常用法,非常简单,对吧。

比如说,我们的数据非常复杂,还有类似头像,昵称,个人签名之类的信息。
可是我保存在本地,只需要用户名,和性别,肿么破呢?
也许你会说 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<data.length; 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);

第二个参数只要传入需要的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, null, "\t");
console.log(str_json);
str_json = JSON.stringify(data, ["name", "sex"], "\t");
console.log(str_json);

其实,我觉得这是个非常鸡肋的功能,,一般情况下却是没啥用。

好了,今天的分享就这些了,希望对新手朋友有所帮助。

参考资料:

JSON.stringify() - JavaScript | MDN

JSON in JavaScript

分类: JavaScript

标签: jsjson

时间: 2024-09-30 07:20:38

JSON.stringify 方法的相关文章

浅谈 JSON.stringify 方法

用过 json 的应该都知道,把一个对象通过 stringify 之后提交给后台或者存储在 Storage 里是很常用的手段.但是 IE6-7 下没有 JSON 对象,所以要借助 json2.js 来实现. 今天我们来简单介绍下 stringify 方法的一些正确使用姿势吧.当然,让高手们贱笑了,本文只是分享一些方法给新手朋友们. var data = [ {name: "王尼玛", sex:1, age: 30}, {name: "王尼美", sex:0, age

IE8中JSON.stringify方法对自动转换unicode字符的解决方案

IE8内置了JSON对象,用以处理JSON数据.与标准方法的不同,IE8的JSON.stringify会把utf-8字符转码: var str = "我是程序员" var jsonstr = JSON.stringify(str) //""\u6211\u662f\u7a0b\u5e8f\u5458"" 一般情况下,我们是在向服务器发送数据的时候,才调用这个方法.服务器端可以正确的解析,所以没有什么问题.但是如果我们jsonstr还要在别的地方用

JS中JSON.stringify()方法,将js对象转换成字符串,传入服务器

JSON 通常用于与服务端交换数据. 在向服务器发送数据时一般是字符串. 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串. 语法 JSON.stringify(value[, replacer[, space]]) 参数说明: value: 必需, 要转换的 JavaScript 值(通常为对象或数组). replacer: 可选.用于转换结果的函数或数组. 如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个

JSON.parse()和JSON.stringify()方法学习

JSON.parse()和JSON.stringify()方法学习 JSON对象中有两个非常好用的方法 JSON.parse接受json字符串转化为JS对象 JSON.stringify接收一个JS对象转化为json字符串 JSON对象与普通对象的区别是JSON对象键值对都必须用双引号 例如: const my={ name:"dylan", age:"18" } let myObj=JSON.stringify(my) console.log(myObj)//&q

浅谈 JSON.stringify 方法【转】

但是 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 = J

JSON.stringify()——JS转JSON

JSON.stringify() JSON 通常用于与服务端交换数据. 在向服务器发送数据时一般是字符串. 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串. 语法 JSON.stringify(value[, replacer[, space]]) 参数说明: value: 必需, 一个有效的 JSON 字符串. replacer: 可选.用于转换结果的函数或数组. 如果 replacer 为函数,则 JSON.stringify 将调用该函数,并

JSON.stringify可以输出格式化的JSON字符串

JSON.stringify() 方法用于将一个json值转为字符串: JSON.parse() 方法用于将json字符串转化成对象: 当我们用JSON.stringify()方法将json值转为字符串时,你会发现所有字符串都连在一块,根本看不懂.那么就有下面的解决方法了: JSON.stringify(json,null,"\t");  //缩进一个tab JSON.stringify(json,null,5);     //缩进5个空格 有时候你会发现,如果打印这些字符串,他们还是

JSON.stringify实例应用—将对象转换成JSON类型进行AJAX异步传值

在上一篇中,对JSON.stringify()方法有了初步的认识,并且做了一些简单的例子.本篇将进一步将JSON.stringify用在复杂些的实例中,例如如下需求: 在进jQuery AJAX异步传值时,用JSON.stringify()函数将数组转换成(JSON:JavaScript Object Notation 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式),再传到一般处理程序中,在一般处理程序中,把得到的值进行反序列化Deserialize<T>(v

JSON.stringify()

概述 JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串. 语法 JSON.stringify(value[, replacer [, space]]) 参数 value 将要序列化成 JSON 字符串的值. replacer 可选 如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理:如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中.关于该参数更详细的解释和示例,