[英]Javascript convert stringified array of objects into array of objects
我有以下变量(通过HTTP响应提供给我,因此是字符串):
var result = '[{name: "John"}, {name: "Alice"}, {name: "Lily"}]'
实际上,有更多的对象,每个对象都有更多的属性,但是您可以理解。
尝试JSON.parse(result)
,出现以下错误:
[{name: "John"}, {name: "Alice"}, {name: "Lily"}]
^
SyntaxError: Unexpected token n
如何将该字符串解析为javascript对象数组?
这是无效的JSON。 为了使其成为有效的JSON,您需要在键(“名称”)周围加上引号
[{"name": "John"}, {"name": "Alice"}, {"name": "Lily"}]
发生错误是因为解析器未命中"
,而是命中了n
。
由于您的字符串不是有效的JSON(缺少属性键的引号),因此您无法使用JSON.parse
对其进行解析。 如果可以控制响应,则应将其更改为返回:
[{"name": "John"}, {"name": "Alice"}, {"name": "Lily"}]
var result = '[{"name": "John"}, {"name": "Alice"}, {"name": "Lily"}]' console.log(JSON.parse(result))
.as-console-wrapper { min-height: 100%; }
由于您的输入格式是固定的,因此解析很简单。
function cutSides(s) { return s.substring(1, s.length - 1); }
var pairs = cutSides(result).split(', ');
var list_of_objects = pairs.map(function(s) {
var pair = cutSides(s).split(': ');
var result = {};
result[pair[0]] = cutSides(pair[1]);
return result;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.