JSON.parse()仅返回对象的一部分

时间:2015-05-26 08:35:10

标签: javascript json

我的表格中有一个字符串:

var targetString = 
"{hello: 5, world: 10}, {hello: 4, otherworld: 11}";

使用语法

var targetObject = JSON.parse(targetString) 

我只收到:

targetObject = {
 hello: 5,
 world: 10
}

所以它只需要第一部分,而不是第二部分。我该如何防止这种情况并解决它?

4 个答案:

答案 0 :(得分:6)

将其括在数组[]中,并将键括在引号中:

var targetString = '[{"hello":5,"world":10},{"hello":4,"otherworld":11}]';
var targetObject = JSON.parse(targetString);

答案 1 :(得分:3)

这是对象数组的正确语法:



var targetString = '[{"hello": 5, "world": 10}, {"hello": 4, "otherworld": 11}]';
var targetArray = JSON.parse(targetString);
console.log(targetArray);




数组元素必须用方括号括起来,属性名必须用双引号括起来。

答案 2 :(得分:1)

您需要将json-keys包装成双引号,否则它是无效的JSON。

var targetString = '[{"hello": 5, "world": 10}, {"hello": 4, "otherworld": 11}]';

答案 3 :(得分:1)

如果您查看JSON.parse()相应的方法JSON.stringify(),则需要将密钥括在引号中以使其正常工作。虽然你通常可以不使用JavaScript引用,但官方的JSON规范确实需要它们。

除了Arvind所提到的,这应该能满足你的需求。

var string = '[{"hello": 5, "world": 10}, {"hello": 4, "otherworld": 11}]';
JSON.parse(string);
// this will return an array with two objects