Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript评估在复杂的json数组上失败_Javascript_Json_Eval - Fatal编程技术网

Javascript评估在复杂的json数组上失败

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中的选项”:“[{”选项\

我想通过eval将json字符串转换为object,但失败了,错误如下:

未捕获的语法错误:意外标识符VM250:1

下面是我的字符串: “[{”测验id:“3”,“测验id:“1”,“json中的选项”:“[{”选项\“:“1\”,“是答案\“:false},{”选项\“:“2\”,“是答案\“:true}]”,,“问题”:“1+1}]

粗体部分似乎有问题,但我不知道如何解决 下面的代码不起作用
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));

你好,菲利克斯,非常感谢您的快速回答和链接,它解决了我的问题。你好,菲利克斯,非常感谢您的快速回答和链接,它解决了我的问题