在处理JSON数据时,JSON.stringify是一个非常常用的方法,用于将JavaScript对象转换为JSON字符串。然而,当对象中存在循环引用时,JSON.stringify会抛出“TypeError: Converting circular structure to JSON”的错误。下面我将详细解释这个问题,并提供解决方案和示例代码。 1. 解释什么是循环引用和JSON.stringify的问题 循环引用...
VM211:1Uncaught TypeError: Converting circular structure to JSON at JSON.stringify (<anonymous>) at<anonymous>:1:6 上面的错误信息告诉我们, 对象中存在循环引用. 解决思路就是通过自定义stringify方法,设置一个全局缓存变量,stringify的第二个参数如果是function时,他会传入每个成员的键和值。使用返回值而不是...
a.map(item => { item.parent = JSON.parse(JSON.stringify(item))// 注意这里 returnitem }) letb = JSON.stringify(a) console.log(b) 更精简的情况: 1 2 3 vara = {}; a.o = a; console.log(JSON.stringify(o))
JSON.stringify(a); JSON.stringify()的结果会是什么呢?结果是Uncaught TypeError: Converting circular structure to JSON。因为在b对象中存在对a对象的引用。这个 ? 是这样,但举一反三准确地归纳出circular structure的条件也是个不小的挑战,推荐大家停顿一下思考一会。。。答案是当子对象对父对象引用时,如果用树形...
VM211:1Uncaught TypeError:Converting circular structure toJSONatJSON.stringify(<anonymous>)at<anonymous>:1:6 上面的错误信息告诉我们, 对象中存在循环引用. 解决思路就是通过自定义stringify方法,设置一个全局缓存变量,stringify的第二个参数如果是function时,他会传入每个成员的键和值。使用返回值而不是原始值。
UseJSON.stringifywith a custom replacer. For example: // Demo: Circular reference var o = {}; o.o = o; var cache = []; JSON.stringify(o, function(key, value) { if (typeof value === 'object' && value !== null) { if (cache.indexOf(value) !== -1) { ...
在 JSON.stringify 的实现中,遍历 key 的过程已经在主代码完成了,所以这里的 checkCircular 只需要包含检测过程。稍加改造如下:function checkCircular(target,currentParent){ let type = getType(target) if(type == 'Object' || type == 'Array'){ throw new TypeError('Converting circular struc...
在JSON.stringify的实现中,遍历 key 的过程已经在主代码完成了,所以这里的checkCircular只需要包含检测过程。稍加改造如下: function checkCircular(target,currentParent){ let type = getType(target) if(type == 'Object' || type == 'Array'){
オブジェクトをJSON.stringifyしたときに、循環参照が含まれていると以下のようなエラーが出ます。 コード consta={a1:"test"};a.aa=a;JSON.stringify(a); 実行結果 JSON.stringify(a);^ TypeError: Converting circular structure to JSON-->starting at object with constructor'Object'---property'aa...
理解 JSON.stringify 基本上,JSON.stringify 将对象转换为 JSON 字符串。同时,JSON.stringify 有如下规则。 1.undefined、Function 和 Symbol 不是有效的 JSON 值。 如果在转换过程中遇到任何此类值,它们要么被省略(当在对象中找到时),要么更改为 null(当在数组中找到时)。 当传入像 JSON.stringify(function() {...