我尝试使用JSON.parse(),但我有错误
Uncaught SyntaxError: Unexpected token '
工作
JSON.parse('{"inputType":"select", "rules" :[{"rule": "literal_values", "restriction": "US"}]}')
但没有工作
为什么第二个版本不起作用?
typeof(validRules)是字符串
答案 0 :(得分:1)
屏幕截图将单引号显示为字符串值中的字符。
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。