惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
The Cloudflare Blog
V
Visual Studio Blog
罗磊的独立博客
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
D
Docker
Last Week in AI
Last Week in AI
B
Blog RSS Feed
C
Check Point Blog
J
Java Code Geeks
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
博客园 - 聂微东
MongoDB | Blog
MongoDB | Blog
雷峰网
雷峰网

时间的朋友

Windows 命令行密码重置 Anaconda安装 typescript 注解解读1 Konvajs Shape加载自定义图片 sshpass 使用 why-is-node-running webgl笔记 SharedArrayBuffer is not defined blender 常用快捷键 | 时间的朋友 vue -- v3.4commit提交记录2 vue2 升级vue3报错问题整理 着色器 expressjs 源码 hyper-V arch linux 网络配置 element input数字格式化 three 拼接货架 WebAudio笔记 Windows nginx重启bat脚本 vue -- v3.4commit提交记录 URI malformed vue3 -- Class 对象在组件中使用范例 | 时间的朋友 ruby 安装和升级 element-plus 老版本cascader使用卡死问题 vue3 内置Transition组件 | 时间的朋友 前端memo的实现 | 时间的朋友 Vue -- vue-class-component源码 | 时间的朋友 linux 优化脚本 typescript 装饰器 | 时间的朋友 microbundle 源码 | 时间的朋友 WSL2问题解决WslRegisterDistribution failed with error: 0x800701bc
JSON.stringify方法 | 时间的朋友
2022-06-27 · via 时间的朋友

Published: · LastMod: June 29, 2022 · 489 words

JSON.parse 🔗

1
JSON.parse(text[, reviver])

reviver 🔗

转换器,如果传入该参数 (函数),可以用来修改解析生成的原始值,调用时机在 parse 函数返回之前。

解析值本身以及它所包含的所有属性,会按照一定的顺序(从最最里层的属性开始,一级级往外,最终到达顶层,也就是解析值本身)分别的去调用 reviver 函数

从最内层开始,按照层级顺序,依次向外遍历

JSON.stringify 🔗

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

value转换规则 🔗

  • 值如果有 toJSON() 方法,按toJSON方法输出。
  • 非数组对象的属性 转换后顺序不固定。
  • 布尔值、数字、字符串会转换成原始值。
  • 常规对象中undefined、函数以及 symbol ,会被忽略
  • 数组中 undefined、函数以及 symbol 会 被转换成 null
  • 函数、undefined 被单独转换时,会返回 undefined
  • 循环引用的对象会报错。
  • symbol 属性键的属性都会被移除。
  • Date 会转为字符串。
  • NaN 、Infinity 、 null 都会被当做 null。
  • Map/Set/WeakMap/WeakSet,仅会序列化可枚举的属性。

replacer 🔗

2个参数,包括key和value

1
2
3
4
5
6
7
8
9
function replacer(key, value) {
  if (typeof value === "string") {
    return undefined;
  }
  return value;
}

var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
var jsonString = JSON.stringify(foo, replacer); // {"week":45,"month":7}

space 🔗

参数用来控制结果字符串里面的间距, 用来格式化json

1
JSON.stringify({ a: 2 }, null, " ");   // '{\n "a": 2\n}'