使用正斜杠解析json字符串 - javascript

时间:2017-11-23 23:12:54

标签: javascript json jsonparser

看起来很简单,但我无法弄清楚

var str="[{name:\"House\",id:\"1\"},{name:\"House and Land\",id:\"5\"},{name:\"Land\",id:\"6\"},{name:\"Terrace\",id:\"11\"}]";
JSON.parse(str.replace(/\s/g, "").replace(/\//g, ''));

我无法将上面的字符串(来自第三方网站)转换为有效的json,以便我可以在我身边进行迭代

错误

VM5304:1 Uncaught SyntaxError: Unexpected token n in JSON at position 2
    at JSON.parse (<anonymous>)

1 个答案:

答案 0 :(得分:2)

JSON需要引用密钥。您的密钥似乎没有引用。因此,添加另一个.replace语句以将引号插入:

.replace(/(\w+):/g, '"$1":');

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON

  

属性名称必须是双引号字符串;尾随逗号是禁止的。

完整解决方案:

.replace(/(,|{)\s*(\w+)\s*:/g, '$1"$2":');