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

时间:2016-01-29 09:12:26

标签: jquery json stringify

我使用基于我的页面结果生成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输出

 [[]]

提前致谢!

2 个答案:

答案 0 :(得分:2)

这是因为你不能在数组中使用命名参数。您需要将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' }];

答案 1 :(得分:0)

JSON.stringify只使用从0到a.length-1的数组索引,没关系。如果要创建其他属性,请使用object ...

e.g。

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