我已经存储在数据库中的编码的字符串化JSON对象,我解码并加载它并尝试将其解析为一个对象但我得到了
Uncaught SyntaxError:意外的令牌'在JSON的第2位 在JSON.parse()
代码:
var attr = new Object();
attr = JSON.parse(code[1].replace(/"/g, "'"));
对象解码:
[{'输入':0,'类型':'可变'},{' inputD':0,&#39 ;类型':'可变'},{' inputI':0,'类型':'可变'},{&# 39;第':0,'类型':'可变'},{'头':0,'类型':& #39;可变'},{'菜单':0,'类型':'可变'},{'列表&#39 ;: 0,'类型':'可变'},{' div的':0,'类型':'可变' },{'链接':0,'类型':'可变'},{'图像':0,'类型& #39;:'可变'},{' elemName':' {}''类型':'对象&# 39;},{'边界':[],'类型':'阵列'},{'嵌套':[],& #39;类型':'阵列'},{'色带':[],'类型':'阵列'}, {'提示':[],'类型':'阵列'},{' gradColors':' {}&# 39;,'类型':'对象'},{'事件':' {}''类型&#39 ;:'对象'},{' sTarget':' {}','类型':'对象'},{' SMAIN':' {}''类型':'对象& #39;},{' orignalStyle':' {}''类型':'对象'},{' objNewStyle':' {}''类型':'对象'},{'功能':' { }''类型':'对象'},{'反向':' {}','类型':'对象'},{' reverseFunction':' {}''类型':'对象& #39;},{' scDetails':' {}''类型':'对象'}]
答案 0 :(得分:2)
JSON应该用双引号括起来,如:
{"输入":0,"输入":"变量"}
这是一个有用的验证工具:
https://jsonformatter.curiousconcept.com/
答案 1 :(得分:1)
这是not valid json字符串。它的值和键应该用双引号(不是单引号)包围。因此,当你执行.replace(/"/g, "'")
时,你基本上违反了JSON标准。
值可以是双引号中的字符串,也可以是数字,或者是真或 false或null,或对象或数组。这些结构可以 嵌套。
答案 2 :(得分:0)
我有同样的错误,@ Philipp Zitzmann是对的。 您必须在https://jsonformatter.curiousconcept.com/
处有效的json字符串有效的json字符串必须有双引号。
JSON.parse({"u1":1000,"u2":1100}) // will be ok
没有报价导致错误
JSON.parse({u1:1000,u2:1100})
// error Uncaught SyntaxError: Unexpected token u in JSON at position 2
单引号导致错误
JSON.parse({'u1':1000,'u2':1100})
// error Uncaught SyntaxError: Unexpected token u in JSON at position 2
答案 3 :(得分:0)
一个相关的。今天我遇到了同样的错误。下面是一个示例:
正确
JSON.parse( "[1,2,3,4,5,6,7,8,9,0]" )
不正确
JSON.parse( "[1,2,3,4,5,6,7,8,..." )
请注意3个点(...),因为工具仅显示数组中的几个数字,并给出...作为休止符。
换句话说,传递给JSON.parse()
的字符串无效,因此给出了错误。
但这可能是任何其他类似的错误。
例如,JSON.parse( "true" )
是正确的,但JSON.parse( "tr" )
失败,等等。