gpt4 book ai didi

javascript - 复制和粘贴带有转义引号的字符串化对象时出现 JSON.parse 异常

转载 作者:行者123 更新时间:2023-11-30 17:08:18 25 4
gpt4 key购买 nike

我必须将一些 JS 对象字符串化以将文本保存在某个地方,我希望之后能够手动复制保存的文本并通过控制台将其传递给一个函数,该函数然后解析文本以对原始文本执行某些操作对象。

不幸的是,解析粘贴的文本似乎有转义双引号的问题,因为解析总是失败。

我创建了一个小片段来说明我的问题:

http://jsfiddle.net/wgwLcgz6/1/

var jsonStr = JSON.stringify({ arg1: 'some string "with quotes"' });

$('#out1').html(jsonStr); // {"arg1":"some string \"with quotes\""}
JSON.parse(jsonStr); // Works just fine
try {
// Copied the ouput of JSON.stringify manually and pasted it directly into
// the parse function...
JSON.parse('{"arg1":"some string \"with quotes\""}');

// We never get here since an exception is thrown
$('#out2').html('Parsed successfully');
} catch (ex) {
// SyntaxError: Unexpected token w
$('#out2').html(ex.toString());
}

我想我确实理解为什么会发生这种情况,尽管我无法正确解释它,但我不知道如何规避这种情况,非常感谢一些帮助和更深入的解释。

还有一件事:如果我将字符串化对象 {"arg1":"some string\"with quotes\""} 粘贴到在线 json 解析器中,例如 http://jsonlint.com/它解析得很好,我猜这是因为他们使用自己的解析器而不是内置的浏览器...

最佳答案

您需要转义引号和反斜杠。由于您在带双引号的字符串周围使用单引号,因此您只需转义反斜杠:

JSON.parse('{"arg1":"some string \\"with quotes\\""}');

关于javascript - 复制和粘贴带有转义引号的字符串化对象时出现 JSON.parse 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522981/

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