繁体   English   中英

Javascript将字符串化的对象数组转换为对象数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM