javascript - 解析带有正斜杠的 json 字符串 - javascript

标签 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, ''));

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

错误

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

最佳答案

JSON 需要引用键。您的 key 似乎未加引号。因此,添加另一个 .replace 语句以将引号插入回:

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

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

Property names must be double-quoted strings; trailing commas are forbidden.

完整的解决方案:

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

关于javascript - 解析带有正斜杠的 json 字符串 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47464392/

相关文章:

javascript - 将 HTML 映射到 JSON

php - pdo 并将 json 编码插入到 json 字段

Java - 如何迭代 json 对象键和值对?

javascript - 设置数字格式始终显示小数点后 2 位

php - 将 JavaScript 变量分配给 Smarty 变量

javascript - 按 X 计数未完成循环

javascript - 定义数组的关联数组

json - 我如何从 JSON 建模一个结构,其中一些高级属性没有键

java - 无法解析 JSONParser

json - 为什么 JSON 解析不会因传递给 Decode() 的完全不同的类型而失败?