gpt4 book ai didi

JSON stringify方法原理及实例解析

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章JSON stringify方法原理及实例解析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串.

语法 。

JSON.stringify(value[, replacer[, space]]) 。

参数说明:

value

必需, 要转换的 JavaScript 值(通常为对象或数组).

replacer

可选。用于转换结果的函数或数组.

如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:"".

如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样.

space

可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t.

返回值: 返回包含 JSON 文本的字符串.

实例 。

?
1
2
3
4
5
6
7
8
9
10
11
var str = { "name" : "菜鸟教程" , "site" : "http://www.runoob.com" }
str_pretty1 = JSON.stringify(str)
document.write( "只有一个参数情况:" );
document.write( "<br>" );
document.write( "<pre>" + str_pretty1 + "</pre>" );
 
document.write( "<br>" );
str_pretty2 = JSON.stringify(str, null , 4) //使用四个空格缩进
document.write( "使用参数情况:" );
document.write( "<br>" );
document.write( "<pre>" + str_pretty2 + "</pre>" ); // pre 用于格式化输出

但是 IE6-7 下没有 JSON 对象,所以要借助json2.js来实现.

今天我们来简单介绍下stringify方法的一些正确使用姿势吧.

当然,让高手们贱笑了,本文只是分享一些方法给新手朋友们.

?
1
2
3
4
5
6
7
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, 遍历数据重新提取下即可。 例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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第二个参数即可简单处理这种问题.

?
1
2
3
4
5
6
7
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 修改为男女,那么第二个参数可以用回调函数来处理.

?
1
2
3
4
5
6
7
8
9
10
11
12
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);

第二个参数如此强悍,为我们省去了不少麻烦.

还有第三个参数,用于格式化字符串用的.

?
1
2
3
4
5
6
7
8
9
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);

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://www.cnblogs.com/KillBugMe/p/12411286.html 。

最后此篇关于JSON stringify方法原理及实例解析的文章就讲到这里了,如果你想了解更多关于JSON stringify方法原理及实例解析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com