gpt4 book ai didi

javascript - 为什么 JSON.parse(JSON.stringify()) 使用简单的字典会失败?

转载 作者:行者123 更新时间:2023-11-28 19:15:09 27 4
gpt4 key购买 nike

解析字符串时会出现错误,而不是向我显示字典。

var mycode = "var data = " + JSON.stringify({"a":"b"}) + "; alert(JSON.parse(data));"
eval(mycode);

最佳答案

当你这样做

"var data = " + JSON.stringify({"a":"b"}) + ";

你最终得到了字符串

var data = {"a":"b"};

请注意,对象周围没有引号,当该字符串传递给 eval 时,它会被视为对象,而不是字符串。
JSON 字符串如果不作为字符串引用,也是有效的 JavaScript 对象,您必须实际添加引号

"var data = '" + JSON.stringify({"a":"b"}) + "';

这会给你

var data = '{"a":"b"}';

当您将 JavaScript 对象传递给 JSON.parse 时,它会转换为字符串,并且如果出现错误,则对象的字符串表示形式为 [object, Object]o 字母上,因为它不是可以解析为 JSON 的对象。

这并不是说 stringify 不会创建字符串,而是创建了字符串,只是您正在创建的 javascript 字符串有一个对象作为 data 的值> 变量,而不是字符串,并且在评估代码时,它尝试使用 JSON.parse 解析该对象。

关于javascript - 为什么 JSON.parse(JSON.stringify()) 使用简单的字典会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30003575/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com