我将json分配给变量:
var a = "[{a:123}]";
现在,如果我a[0]
,则会将结果显示为[
。在执行a = JSON.parse(a)
时,它会将错误视为Uncaught SyntaxError: Unexpected token a in JSON at position 2
如何将a转换为a = [{a:123}];
?
答案 0 :(得分:3)
这里的问题是你没有有效的JSON。
未捕获的SyntaxError:位于第2位的JSON中的意外标记a
这个错误抱怨角色" a"这在这里无效。见http://www.json.org/
理论上,您可以使用eval
来实现目标,但这是非常不安全的,因为您可以评估字符串中存在的任何代码,因此我不建议这样做。
您必须确保所获得的JSON有效,或者如果无法更改格式,则可能需要在将字符串传递给JSON.parse之前对其进行预处理。
顺便说一句,与此处由于某种原因而被推崇的另一个答案相反,没有Array.parse
这样的事情:
$ node -e 'Array.parse()'
[eval]:1
Array.parse()
^
TypeError: Array.parse is not a function
另见:
答案 1 :(得分:0)
你必须替换:
var a = "[{a:123}]";
by:
var a = "[{\"a\":123}]";