是否有一个Javascript JSON解析库可以解析这样的字符串?
‘{ param: “value” }’
我知道JSON.parse(‘{param:“ value”}’)不会。因为param周围没有引号,所以会引发错误:
Unexpected token p in JSON at position 2
但是我可以使用标准JSON格式创建Javascript对象,而无需在属性名称两边加上引号:
const o = { param: ‘value’ };
所以我不明白为什么无法解析“ {param:“ value”}”之类的字符串。 JSON.parse(...)不会执行此操作,但是还有其他JSON解析库吗?
我正在Angular 7中编程。
答案 0 :(得分:0)
我将假设您的问题中的引号是一个错误,并且您的真实字符串看起来像这样:
{ param: "value" }
您可以使用eval
进行解析:
result = eval("(" + str + ")");
(如果确实存在花哨的引号,您可能会倾向于将它们替换为replace
或类似名称,但是请注意,这样做也会在 inside 字符串中替换它们。)
实时示例:
const str = '{ param: "value" }';
const result = eval("(" + str + ")");
console.log(`result.param = ${result.param}`);
警告:以这种方式使用eval
允许字符串的提供者在您的代码中运行任意代码。所以:
eval
;这样做允许用户A在用户B的浏览器中运行任意代码-这是一个非常的主意。eval
(因为服务器基本上就是用户B :-))