【JS】JSON.stringify( )
在JavaScript中,可以Json.stringfy()的方法将值转换为字符串(string)
一般的用法如下:
const value = {name: 'zhansan',age:18,
}const jsonValue = JSON.stringify(value);
获得的jsonValue结果是
{"name":"zhansan","age":18}
除了以上的用法,还有其他的拓展用法的:
在源码中,我们可以看出
interface JSON {/*** Converts a JavaScript value to a JavaScript Object Notation (JSON) string.* @param value A JavaScript value, usually an object or array, to be converted.* @param replacer A function that transforms the results.* @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.*/stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;/*** Converts a JavaScript value to a JavaScript Object Notation (JSON) string.* @param value A JavaScript value, usually an object or array, to be converted.* @param replacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified.* @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.*/stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;
}
从原码中可以发现还是存在两位两个参数: replacer 和 space
1. replacer
这一个参数最主要用于控制结果的输出,即是,有时候我们并不希望我们的全部值被输出,可能我们会通过去处理值,再输出,但是这样实际上是浪费了存储空间的,而 JSON.stringify() 这个方法就提供了replacer这个选项。
从上述代码中可以看出,其有两种形式,一种是函数形式,一种是数组形式
1. 使用数组的形式,只转换数组中存在的值
const value = {name: 'zhansan',age:18,sex:'box',hobby: 'running',
}const jsonValue = JSON.stringify(value, ['name','age']);console.log(jsonValue)
// {"name":"zhansan","age":18}
2. 通过函数形式去处理
const value = {name: 'zhansan',age:18,sex:'box',hobby: 'running',
}const jsonValue = JSON.stringify(value, ((key, val) => {if(key === 'age'){return undefined}return val;
}));console.log(jsonValue)
//{"name":"zhansan","sex":"box","hobby":"running"}
2. space
参数用来控制结果字符串里面的间距。如果是一个数字,则在字符串化时每一级别会比上一级别缩进多这个数字值的空格(最多 10 个空格);如果是一个字符串,则每一级别会比上一级别多缩进该字符串(或该字符串的前 10 个字符)。
const value = {name: 'zhansan',age:18,sex:'box',hobby: 'running',
}const jsonValue = JSON.stringify(value, null, 1);console.log(jsonValue)
输出结果
{"name": "zhansan","age": 18,"sex": "box","hobby": "running"
}
还有一个 toJson的方法,就是在对象中添加 toJson 这一个方法,当进行序列化时,被序列化不是该对象,而是此方法,
const value = {name: 'zhansan',age:18,sex:'box',hobby: 'running',toJSON: function () {return 'this is a test ';}
}const jsonValue = JSON.stringify(value, null, 5);console.log(jsonValue)
得到的结果
"this is a test "
【JS】JSON.stringify( )相关推荐
- 【js】JSON.stringify 语法实例讲解
语法: JSON.stringify(value [, replacer] [, space]) value:是必选字段.就是你输入的对象,比如数组,类等. replacer:这个是可选的.它又分为 ...
- 【JS】json导出到excel,自定义文件名和后缀名
json导出excel表格 HTML <el-button type="danger" class="ml10 fr" @click="expo ...
- 【JS】【掘金】看看你所关注的掘友值排行榜
前言 掘金新鲜出炉的掘友值.掘友等级玩法~ 你会玩了吗? 没有排行榜? 那咱们就简单做一个,看看和自己所关注的大佬们的掘友分数排行吧! 基于这篇改造:<[JS][掘金]获取关注了里不在关注者里的 ...
- 【JS】【掘金】看看你所有粉丝的掘友值排行榜
前言 掘金新鲜出炉的掘友值.掘友等级玩法~ 你会玩了吗? 没有排行榜? 那咱们就简单做一个,看看和自己的的粉丝们掘友值分数排行吧! 基于这篇改造:<[JS][掘金]获取关注了里不在关注者里的人& ...
- 【JS】WTool.js 基于JQuery的工具集 (写着玩的)
[JS]WTool.js 基于JQuery的工具集 (写着玩的) // console.info("加载WTool中...")/*** 威工具1.基于Jquery开发2.参考VU ...
- 【JS】JS中数值型字符串相加变成拼接字符串的解决方法
[JS]JS中数值型字符串相加变成拼接字符串的解决方法 参考文章: (1)[JS]JS中数值型字符串相加变成拼接字符串的解决方法 (2)https://www.cnblogs.com/xsjs/p/1 ...
- 【03】json使用
[03]json使用 把 JSON 文本转换为 JavaScript 对象 JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSO ...
- 【cJson】 JSON格式详解
0.前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programmin ...
- 【JS】教你如何在对象内任意位置插入任意属性
[JS]教你如何在对象内任意位置插入任意属性 如果你不知道我写这篇文章的目的是什么,那不妨想想这样一个场景 var obj = {a: "A",c: "C",d ...
最新文章
- DV录像带导出一定要用1394
- (转)Java并发编程:线程池的使用
- Android列表视图(List View)
- 简单的错觉画_错觉图片生成实验 - 正方形错觉
- 【顶尖技术人是怎样炼成的】清华博士的模型信仰——对话阿里云 MVP陈旸
- .net core 实现简单爬虫—抓取博客园的博文列表
- 睡觉时:新增的Java 8新增功能
- 彻底解决 Jenkins Slaver 节点无法执行 Git-LFS 命令
- 元气骑士机器人的成就皮肤_元气骑士:5把特殊“红武”,想要机器人的皮肤,用它就对了!...
- HighTec安装教程
- ITIL学习笔记——ITIL入门小知识
- STM32LED--基于HAL库(LCD与LED冲突?一文看懂如何精准劝架)
- GMT和UTC时区概念
- B 站递给 GitHub 的 DMCA 文件被公布,蹩脚的英语引发争议
- Android版添加phonegap--融云即时通讯插件教程
- 移动端和pc端浏览器兼容问题及处理
- mysql主从同步延迟优化大全
- 自定义控件解决android中TextView中英文换行问题
- 使用谷歌、360浏览器的F12功能模拟微信访问网页
- 不动点迭代(Fixed Point Iteration)