我的表格中有一个字符串:
var targetString =
"{hello: 5, world: 10}, {hello: 4, otherworld: 11}";
使用语法
var targetObject = JSON.parse(targetString)
我只收到:
targetObject = {
hello: 5,
world: 10
}
所以它只需要第一部分,而不是第二部分。我该如何防止这种情况并解决它?
答案 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