我尝试使用 JSON.parse(),但出现错误
Uncaught SyntaxError: Unexpected token '
工作
JSON.parse('{"inputType":"select", "rules" :[{"rule": "literal_values", "restriction": "US"}]}')
但不工作
为什么第二个版本不起作用?
typeof(validRules) 是字符串
最佳答案
屏幕截图将单引号显示为字符串值中的字符。
console.log(JSON.parse("'{\"inputType\":\"select\"}'"))
// ^ ^
// SyntaxError: Unexpected token '
console.log(validRules.charAt(0)); // "'" vs. "{"
console.log(validRules.charCodeAt(0)); // 39 vs. 123
虽然在您的代码片段中,它们充当字符串文字的分隔符。
console.log(JSON.parse('{"inputType":"select"}'))
// { inputType: 'select' }
您需要从字符串值中删除单引号,以便将其解析为 JSON。
关于Javascript JSON.parse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24265548/