编辑 -首先要指出的是,这不是可以使用正则表达式解决的问题。
区分作为序列化形式的JSON表示法和Javascript对象常量表示法很重要。
这个:
{ x: "hello" }是一个完全有效的Javascript值(一个表达式片段),因此:
var y = { x: "hello" };与您完全相同的结果:
var y = { "x": "hello" };换句话说,在任何一种情况下,“ y”的值将完全相同。完全相同,以致无法分辨出这两个常数中的哪一个用于初始化“ y”。
现在,如果要执行的操作是将包含Javascript样式“ JSON简写” 的 字符串(
不带引号)转换为有效的JSON,则唯一要做的就是解析它,并在属性名称周围用引号将字符串重新构建。也就是说,您将不得不编写自己的“轻松”
JSON解析器,以应付未加引号的标识符作为属性名称,或者必须找到可以处理这种宽松语法的现成解析器。
在您的情况下,看起来好像一旦有了“松弛”解析器,就可以完成。您应该不需要翻译。值得庆幸的是,您的“无效”
JSON响应完全可以由Javascript本身解释,因此,如果您信任数据源(那是一个 很大的 “ if”),则应该可以使用“
eval()”对其进行评估。



