Javascript评估在复杂的json数组上失败
我想通过eval将json字符串转换为object,但失败了,错误如下: 未捕获的语法错误:意外标识符VM250:1 下面是我的字符串: “[{”测验id:“3”,“测验id:“1”,“json中的选项”:“[{”选项\“:“1\”,“是答案\“:false},{”选项\“:“2\”,“是答案\“:true}]”,,“问题”:“1+1}] 粗体部分似乎有问题,但我不知道如何解决 下面的代码不起作用Javascript评估在复杂的json数组上失败,javascript,json,eval,Javascript,Json,Eval,我想通过eval将json字符串转换为object,但失败了,错误如下: 未捕获的语法错误:意外标识符VM250:1 下面是我的字符串: “[{”测验id:“3”,“测验id:“1”,“json中的选项”:“[{”选项\“:“1\”,“是答案\“:false},{”选项\“:“2\”,“是答案\“:true}]”,,“问题”:“1+1}] 粗体部分似乎有问题,但我不知道如何解决 下面的代码不起作用 var m='[{“测验id”:“3”,“测验id”:“1”,“json中的选项”:“[{”选项\
var m='[{“测验id”:“3”,“测验id”:“1”,“json中的选项”:“[{”选项\“:\“1\”,\“是答案\“:假},{”选项\“:“2\”,\“是答案\“:真}],“问题”:“1+1}];
评估(m)代码>它不起作用,因为您没有正确转义字符串文本中的数据。查看第一种情况下m
的值,尤其是引号:
[{"option_in_json":"[{"option":"1","is_answer":false}]","question":"1+1"}]
// ^ ^
我删除了一些不相关的数据。您应该能够看到这不是有效的JavaScript(或JSON),因为选项之前的引号终止了字符串
为了将数据放入字符串文本中,您应该修复数据,使其不包含嵌套的JSON,或者转义\
:
'[{"option_in_json":"[{\\"option\\": ... }]"}]'
当然,如果你不把它放在一个字符串文字放在首位
var m='[{"quiz_id":"3","_id":"1","option_in_json": [{"option":"1","is_answer":false},{"option":"2","is_answer":true}],"question":"1+1"}]';
// ^-- don't wrap in "" so no need to escape inner double quotes.
console.dir(JSON.parse(m));
它不起作用,因为您没有正确转义字符串文本中的数据。查看第一种情况下m
的值,尤其是引号:
[{"option_in_json":"[{"option":"1","is_answer":false}]","question":"1+1"}]
// ^ ^
我删除了一些不相关的数据。您应该能够看到这不是有效的JavaScript(或JSON),因为选项之前的引号终止了字符串
为了将数据放入字符串文本中,您应该修复数据,使其不包含嵌套的JSON,或者转义\
:
'[{"option_in_json":"[{\\"option\\": ... }]"}]'
当然,如果你不把它放在一个字符串文字放在首位
var m='[{"quiz_id":"3","_id":"1","option_in_json": [{"option":"1","is_answer":false},{"option":"2","is_answer":true}],"question":"1+1"}]';
// ^-- don't wrap in "" so no need to escape inner double quotes.
console.dir(JSON.parse(m));
你好,菲利克斯,非常感谢您的快速回答和链接,它解决了我的问题。你好,菲利克斯,非常感谢您的快速回答和链接,它解决了我的问题