将字符串转换为JavaScript字典

17

我有一个从数据库中获取的字符串,需要将其转换为Javascript字典。

"['content':{'type':'file','path':'callie/circle'},'video':{'videoId':'CvIr-2lMLsk','startSeconds': 15,'endSeconds': 30'}]".

如何将上述字符串转换为Javascript字典?我是否应该先将字符串转换为json?当我尝试使用json.parse时,会显示错误:

未捕获的SyntaxError:意外的令牌'
在对象解析(本地)
在:2:6
在Object.InjectedScript._evaluateOn(:905:140)
在Object.InjectedScript._evaluateAndWrap(:838:34)
在Object.InjectedScript.evaluate(:694:21)


你尝试使用过 Map 吗? - MrYo
我该如何使用 map 呢?我一点都不清楚。 - Mubashir Kp
1
那不是JSON。字符串需要用双引号,而不是单引号。 - Sverri M. Olsen
有效的 JSON 字符串为: {"content":{"path":"callie/circle","type":"file"},"video":{"videoId":"CvIr-2lMLsk","endSeconds":"30'","startSeconds":15}}我建议您先创建正确的 JSON 字符串。 - MrYo
1个回答

39
请修正您的 JSON 字符串,
Valid json is: {"content":{"path":"callie/circle","type":"file"},"video":{"videoId":"CvIr-2lMLs‌​k","endSeconds":"30","startSeconds":15}}

然后将字符串转换为JSON格式:

var obj = JSON.parse(string);

我尝试过的方法:

var obj = JSON.parse('{"content":{"path":"callie/circle","type":"file"},"video":{"videoId":"CvIr-2lMLs‌​k","endSeconds":"30","startSeconds":15}}');
console.log(obj.content);
var obj2 = obj.content;
console.log(obj2.path);

2
我该如何使用不正确的 JSON 字符串,只使用纯 JS 字典 {}? - CS QGB
like {url:xxxx} - CS QGB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接