JSON.stringify 使用多个 javascript 对象时无法正确显示

JSON.stringify not display properly, while use multiple javascript object

我使用基于我的页面结果生成 javascript 多个对象,然后转换为 JSON 字符串。但是 JSON.stringify 显示不正确。不知道为什么会这样显示。我添加了我的编码示例

var sample_object = [];
var sub_array = [];
sub_array["type"] = 'I';
sample_object.push(sub_array);

console.log(sample_object);
console.log(JSON.stringify(sample_object));

结果:-

[Array[0]]
    0: Array[0]
        length: 0
        type: "I"_
        _proto__: Array[0]
        length: 1__proto__:
        Array[0]

JSON.stringify输出

 [[]]

提前致谢!

这是因为数组中不能有命名参数。您需要将 sub_array 更改为一个对象。另请注意,您命名为 sample_object 的变量实际上是一个数组。这是一个具有适当命名变量的工作版本:

var sample_array = [];
var sub_object = {};
sub_object["type"] = 'I';
sample_array.push(sub_object);

console.log(sample_array);
console.log(JSON.stringify(sample_array)); // = '[{"type":"I"}]'

Example fiddle

您甚至可以将前四行缩短为:

var sample_array = [{ type: 'I' }];

只有从0到a.length-1的数组索引被JSON.stringify使用,没问题。如果要创建其他属性,请使用对象...

例如

var x={type:"i",data:[]}