JSON.stringfy的用法
JSON.stringify是日常开发中经常用到的JSON对象中的一个方法,用于将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer 函数,则可以选择性地替换值,或者指定的 replacer 是数组,则可选择性地仅包含数组指定的属性。
简而言之,就是用于将对象转换成JSON字符串。
JSON.stringify(value[, replacer [, space]])
-
value:必填参数,需要序列化的JSON对象。
-
replacer:可选参数。
-
函数类型:则在序列化过程中,被序列化的值每个属性都会经过该函数的转换和处理;
-
数组类型:则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;
-
null或未提供:则对象所有的属性都会被序列化。
-
space:可选参数,用来控制字符串之间的间距。
-
指定缩进用的空白字符串,用于美化输出(pretty-print);
-
数字类型,它代表有多少的空格;上限为10。小于1,意味着没有空格;
-
字符串类型,当字符串长度超过10个字母,取其前10个字母,该字符串将被作为空格;
-
null或未提供,将没有空格。
注意:
-
循环引用的对象(对象之间相互引用,形成无限循环)执行此方法,会抛出错误。
-
布尔值、数字、字符串的包装对象在序列化过程中会自动转换成对应的原始值。
-
undefined、任意的函数以及symbol值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 null(出现在数组中时)。函数、undefined被单独转换时,会返回 undefined,如JSON.stringify(function(){}) or JSON.stringify(undefined)。这就是为什么对象中有这些类型的属性,不能使用JSON.parse(JSON.stringify())来进行深拷贝。
-
Date 日期调用了 toJSON() 将其转换为了 string 字符串(同Date.toISOString()),因此会被当做字符串处理。
-
NaN 和 Infinity 格式的数值及 null 都会被当做 null。
-
其他类型的对象,包括 Map/Set/WeakMap/WeakSet,仅会序列化可枚举的属性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律