【问题标题】:weird behaviour of JsonJson的奇怪行为
【发布时间】:2017-11-04 09:22:40
【问题描述】:

我正在通过 JavaScript 序列化程序创建 Json 并获取带有斜杠的 JSON 字符串,当通过“https://jsonlint.com/”检查时有效。 现在我使用“https://www.freeformatter.com/”删除了斜杠,并再次通过https://jsonlint.com/检查了带有删除斜杠的json,它显示错误“无效”

错误:第 1 行解析错误:

"{"case":{"name":"L ---^ 期待 'EOF'、'}'、':'、','、']',得到 'undefined'。

有人可以解释这种行为吗?

【问题讨论】:

  • 这种行为并不奇怪,它是 JSON。您将转义的引号变成了字符串的分隔符。不要删除你的斜线,你正在改变你的结果。
  • 谢谢,所以我需要验证我的 json 结果,因为文件很大,我需要一些更好的方法来通过肉眼验证。我试图将其转换为 XML,但在线 xml 转换器不带反斜杠如果我删除反斜杠,它将变为无效的 JSON。请帮助
  • 不要删除你的反斜杠,你会破坏你的 JSON。
  • 我查看了您问题中提到的免费格式化程序。看起来在格式化之后,如果你手动删除字符串开头和结尾的双引号,那么 JSON 将是有效的。你试过吗?正如其他人所提到的,序列化程序使用反斜杠使其成为有效字符串。

标签: c# json


【解决方案1】:

反斜杠 () 是 JSON 的特殊字符。 Is 用于转义字符串中的特殊字符。因此,在您删除它们之前 - 您的所有报价都已成功转义。现在双引号中有双引号,解析器不知道如何正确解析它。

【讨论】:

  • 谢谢,我需要验证我的 json 结果,并且由于文件很大,我需要一些更好的方法来通过肉眼验证。我尝试将其转换为 XML,但在线 xml 转换器不带反斜杠,如果我删除了反斜杠,它变成了无效的 JSON。
猜你喜欢
  • 2021-08-01
  • 2014-12-25
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多