javascript - 解析 JSON 时出现此语法错误的原因是什么?

标签 javascript json

我在 javascript 中有一个字符串:

var test = '{"test":"\\-"}'

当我尝试使用以下内容将其解析为 JSON 时:

JSON.parse(test)

或与:

$.parseJSON(test)

我收到类型为“unexpected_token_number”的 SyntaxError。 "test" 属性的值是用户可输入的字段。我应该如何正确地逃避这个领域?

最佳答案

'{"test":"\\-"}' 将被解释为 JavaScript 字符串,结果为 {"test":"\-"}

您可以在these diagrams中看到,\-不是有效的逃生序列(有效为\"\\\/\b

JSONLint 也给出错误

Parse error on line 2:
{    "test": "\-"}
-------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

如果你想在 JSON 中使用两个反斜杠,你也必须在 JavaScript 字符串中对它们进行转义,所以你最终会得到

var test = '{"test": "\\\\-"}';

否则,忽略它:

var test = '{"test": "-"}';

关于javascript - 解析 JSON 时出现此语法错误的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7717549/

相关文章:

javascript - 通过 NodeList 中的内部文本选择子节点

javascript - 结束最后一个视频youtube API后如何获取第一个视频

javascript - 2 个 process.nextTicks 是否在同一个刻度(也称为帧)上运行?

javascript - react : Pass function property down to pure child component - Rerendering

javascript - 在 JSON 旁边解析 css

java - 如果提供的登录信息错误,为什么控件不在其他部分和 Toast 中?

javascript - SoundCloud Javascript API SC.Connect 错误

Python问题: reading multiple json files from a folder load only one json

java - jackson 忽略了特定的属性(property),但能够检查它是否可用

python - 如何在 python 中向空 JSON 添加元素?