You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS中对象数组无法被JSON.stringify序列化问题求助

问题排查与解决方案

首先,我一眼看到你代码里有个致命的拼写错误,这应该是导致测试输出异常的直接原因:

在这行测试代码中:

console.log(JSON.stringify({cameraArray:Array}));

你把要序列化的变量 cameraArray 误写成了JavaScript内置的Array构造函数!这就导致你序列化的是{cameraArray: Array}这个包含构造函数的对象,而不是传入的目标数组。修正这行代码为:

console.log(JSON.stringify({cameraArray: cameraArray}));

先把这个错误改掉,再看后续输出是否正常。

如果修正后还是出现JSON.stringify返回空对象/数组的情况,我们再排查其他常见原因:

  • 对象属性不可枚举:如果你push到数组里的obj对象,其属性是通过Object.defineProperty定义且enumerable设为false,JSON.stringify会直接忽略这些属性。你可以用Object.getOwnPropertyDescriptors(obj)检查目标对象的属性配置。
  • 存在循环引用:如果数组内的对象存在互相引用的情况(比如obj.self = obj),JSON.stringify会无法正常序列化,甚至抛出错误。你可以尝试单独序列化数组中的每个对象,定位出有问题的元素。
  • 包含不可序列化的类型:函数、Symbol、undefined、BigInt这些类型都是JSON不支持的,JSON.stringify会直接跳过函数/undefined属性,忽略Symbol,遇到BigInt则报错。检查你数组中的对象是否包含这类属性。
  • 数组元素异常:虽然Array.isArray验证了是数组,但可以再确认cameraArray中的元素是否都是预期的对象——有没有不小心push了undefined或其他非对象值?

先修正拼写错误,再根据上面的点逐一排查,应该就能解决你的问题了!

内容的提问来源于stack exchange,提问作者elpha01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:54:05