【问题标题】:JSON ParseError when passing a string in single quotes传递单引号中的字符串时出现 JSON ParseError
【发布时间】:2018-01-13 05:35:16
【问题描述】:

我正在制作一个 ajax 帖子,传递一个带有逗号的字符串的 json 对象。当我进行 ajax 调用时,我在 rails 日志中得到了这个:

JSON::ParserError (822: unexpected token at ''"Word1","Word2","Word3"''):

我发送的数据对象如下所示:

{obj: { obj1: '"Word1", "Word2", "Word3"'}}

当我尝试在不带单引号的情况下发送它时,意外的令牌错误发生在逗号处。

JSON::ParserError (822: unexpected token at ',"Word2","Word3"''):

任何人都可以破译错误信息吗?通过ajax传递时我需要编码的方法吗?

【问题讨论】:

  • 能否请您提供有问题的 ajax 调用
  • 原始 JSON 是什么样的? JSON 对字符串使用双引号(并且只有双引号),看起来您的引号可能混淆了,或者可能不正确地转义了。
  • 感谢您的帮助。我发现问题实际上是需要转义特殊字符,并且保存 obj1 的数据类型正在注册为 json vs string。无论如何感谢您的帮助。

标签: ruby-on-rails json ruby


【解决方案1】:

看起来您的数据对象是错误的。 {obj: { obj1: '"Word1", "Word2", "Word3"'}} 甚至无效。每个键都必须有一个值。

如果obj1 应该是一个数组,它必须有[] 键。以下是一个有效的 JSON 示例:

{
  "obj": {
    "obj1": ["Word1", "Word2", "Word3"]
  }
}

要验证您的 JSON 并避免因此类错误而浪费时间,请检查您的数据对象here

【讨论】:

  • 感谢您的反馈。我试过两者都不可用。然而,问题出在转义字符上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-27
  • 2014-06-14
  • 1970-01-01
  • 2018-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多