2015-07-10 48 views
0

我想转换成JSON对象的对象这部作品很好地与以下对象和相关代码:JavaScript的JSON用单引号解析

myStr = "{'key':'value'}" 
JSON.parse(myStr.replace(/'/g, "\"")); 

的问题是,用相同的代码,我我发现有以下对象的异常:

myStr = "{'key':'val'ue'}" 

错误是意外的令牌。我想保留l和u之间的单引号,而不是替换它。

反正有吗?

+1

你需要逃避那一个。或编码。 – jmingov

+7

无论系统产生什么'“{'key':'val'ue'}”'应该被打耳光。这是无效的。 – xdumaine

+4

我同意@xdumaine。如果你能够改变原始系统,从源头解决问题,而不是试图修补混乱 –

回答

1

你能做到这一点,但感觉有点哈克......

​​
+1

它...的作品。虽然这是解决不同问题的一种解决方法 – Cerbrus

+0

我同意,修复源代码中的问题比使用同样不好的解决方案修复问题要好得多。 – TW80000

+0

这个解决方案似乎可行,但如果你可以解释一点,尤其是最后一个替换,这将是很好的。我知道第一个替换是为了极端的引号。 – user2443476

-1

希望这可以帮助你。假设内部单引号出现在字母之间。

myStr = "{'key':'val'ue'}" 
JSON.parse(myStr.replace(/([a-z])'([a-z])/g, "$1\\'$2"));