首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS】261- 如何提升JSON.stringify()的性能?

熟悉的JSON.stringify() 在浏览器端或服务端,JSON.stringify()都是我们很常用的方法: 将 JSON object 存储到 localStorage ; POST 请求的...JSON body; 处理响应体的 JSON 形式的数据; 甚至某些条件下,我们还会用它来实现一个简单的深拷贝; …… 在一些性能敏感的场合下(例如服务端处理大量并发),或面对大量 stringify...那么如果我们知道这个 Object 的键名、键值信息呢 —— 也就是知道它的结构信息,这会有帮助么?...由于在 scheme 定义,name为string类型,且不为空,所以会在code添加如下一段代码字符串: "json += $asString(obj['name'])" 由于还需要处理数组、及联对象等复杂情况...Tips 最后,还是想提一下 所有的 benchmark 只能作为一个参考,具体是否有性能提升、提升多少还是建议你在实际的业务测试; fast-json-stringify 中使用到了 Function

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

慎用JSON.stringify

JSON.stringify 强大的第二个参数 replacer 这个参数是可选的,可以是一个函数,也可以是一个数组 当是一个函数的时候,则在序列化的过程,被序列化的每个属性都会经过该函数的转换和处理...(myIntro, replacerFun)) // {"age":25,"like":"FE"} 这里其实就是一个筛选的作用,利用的是 JSON.stringify 对象属性值为 undefined...稍等稍等,先看完以下的注意事项再做决定吧,可能在某些场景下会触发一些难以发现的问题 转换属性值中有 toJSON 方法,慎用 转换值如果有 toJSON 方法,该方法返回的值将会是最后的序列化结果 /...() at :1:6 以 symbol 为属性键的属性,慎用 所有以 symbol 为属性键的属性都会被完全忽略掉,即便 replacer 参数强制指定包含了它们...(person)) // {"age":"25"} 总结 JSON.stringify 在实际应用确实很方便的解决了我们很多问题,比如简单的深拷贝等。

95730

前端 JavaScript JSON.stringify() 的基本用法

前言 在开发工作,我们可能会碰到这样的需求:需要将某个对象内容弹窗显示或者保存在文件,这时候如果你直接弹窗的话,很可能就是下面这样的:[image-20210629184729132] 因为很多接口它对参数有要求...replacer(可选) 如果该参数是一个函数,则在序列化过程,被序列化的值的每个属性都会经过该函数的转换和处理; 如果该参数是一个数组,则只有包含在这个数组的属性名才会被序列化到最终的 JSON...字符串; 如果该参数为 null 或者未提供,则对象所有的属性都会被序列化。...如果 space是一个非空字符串(例如“\t”),则返回值文本在每个级别缩进字符串的字符。 如果 space 是长度大于 10个字符的字符串,则使用前 10 个字符。...如果返回 undefined,该属性值不会在 JSON 字符串输出。

81910

慎用 JSON.stringify

JSON.stringify 强大的第二个参数 replacer 这个参数是可选的,可以是一个函数,也可以是一个数组 当是一个函数的时候,则在序列化的过程,被序列化的每个属性都会经过该函数的转换和处理...(myIntro, replacerFun)) // {"age":25,"like":"FE"} 这里其实就是一个筛选的作用,利用的是 JSON.stringify 对象属性值为 undefined...当第二个参数为数组的时候,只有包含在这个数组的属性名才会被序列化: JSON.stringify(myIntro, ['name']) // {"name":"Gopal"} 中看不中用的第三个参数...转换属性值中有 toJSON 方法,慎用 转换值如果有 toJSON 方法,该方法返回的值将会是最后的序列化结果。...(person)) // {"age":"25"} 总结 JSON.stringify 在实际应用确实很方便的解决了我们很多问题,比如简单的深拷贝等。

42830

差点因为 JSON.stringify 丢了奖金...

由于JSON.stringify的错误使用,他负责的其中一个业务模块上线后出现了bug,导致某个页面无法使用,进而影响用户体验,差点让他失去年终奖。 在这篇文章,我将分享这个悲伤的故事。...发现页面上有一个表单允许用户提交数据,然后前端应该从表单解析数据并将数据发送到服务器。 表格是这样的:(下面是我的模拟) 这些字段是可选的。...在转换过程忽略其值为undefined的字段。...如果在转换过程遇到任何此类值,则它们要么被忽略(在对象中找到),要么被更改为 null(当在数组中找到时)。...9、 尝试对 BigInt 值进行字符串化时抛出 TypeError(“BigInt 值无法在 JSON 序列化”)。 自己实现 JSON.stringify 理解一个函数的最好方法是自己实现它。

41310

如何提升JSON.stringify()的性能?

熟悉的 JSON.stringify() 在浏览器端或服务端,JSON.stringify()都是我们很常用的方法: 将 JSON object 存储到 localStorage ; POST 请求的...JSON body; 处理响应体的 JSON 形式的数据; 甚至某些条件下,我们还会用它来实现一个简单的深拷贝; …… 在一些性能敏感的场合下(例如服务端处理大量并发),或面对大量 stringify...那么如果我们知道这个 Object 的键名、键值信息呢 —— 也就是知道它的结构信息,这会有帮助么?...由于在 scheme 定义,name为string类型,且不为空,所以会在code添加如下一段代码字符串: "json += $asString(obj['name'])" 由于还需要处理数组、及联对象等复杂情况...Tips 最后,还是想提一下 所有的 benchmark 只能作为一个参考,具体是否有性能提升、提升多少还是建议你在实际的业务测试; fast-json-stringify 中使用到了 Function

1.3K10

JavaScript | JS使用JSON.stringify(obj)和JSON.parse(json)来对数据进行转换

在开发,我们经常会需要对数据进行转化处理,在JavaScript中提供了两个函数:**JSON.parse()和JSON.stringify()**。...对象的每个成员都会调用这个函数。 JSON.stringify() 方法用于将对象或数组转换为 JSON 字符串。...语法:JSON.stringify(value, replacer, space) 这个方法可以传三个参数: value是要转换的对象或数组,是必须的。...replacer可以是函数或数组,如果参入函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。...如果replacer传入是一个数组,则仅转换该数组具有键值的成员。成员的转换顺序与键在数组的顺序一样。

2.6K20

Javascript的JSON.stringify()知多少?

写在前面 前几天看到前端胖头鱼的一篇文章《就因为JSON.stringify,我的年终奖差点打水漂了》,讲的就是JSON.stringify在工程开发的应用,线上用户不能提交表单。...JSON.stringify() JSON.stringify是日常开发中经常用到的JSON对象的一个方法,用于将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer...函数类型:则在序列化过程,被序列化的值的每个属性都会经过该函数的转换和处理; 数组类型:则只有包含在这个数组的属性名才会被序列化到最终的 JSON 字符串; null或未提供:则对象所有的属性都会被序列化...undefined、任意的函数以及symbol值,在序列化过程中会被忽略(出现在非数组对象的属性值时)或者被转换成 null(出现在数组时)。..." console.log(JSON.stringify(18));//"18" console.log(JSON.stringify(true));//"true" console.log(JSON.stringify

1.2K00
领券