我使用基于我的页面结果生成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输出
[[]]
提前致谢!
答案 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"}]'
你甚至可以将前四行简化为:
var sample_array = [{ type: 'I' }];
答案 1 :(得分:0)
JSON.stringify只使用从0到a.length-1的数组索引,没关系。如果要创建其他属性,请使用object ...
e.g。
var x={type:"i",data:[]}