【问题标题】:How do I turn my string into an array? (JSON.parse errors)如何将我的字符串变成一个数组? (JSON.parse 错误)
【发布时间】:2018-08-18 13:53:21
【问题描述】:

如何将类似于数组的字符串转换为实际数组?这个帖子建议我应该使用JSON.parse -- Convert string into Array in rails,但是当我去尝试时,我得到一个错误

localhost:nightminer satishp$ rails console
Running via Spring preloader in process 9674
Loading development environment (Rails 5.0.6)
irb(main):001:0> JSON.parse("['2de33']")
JSON::ParserError: 409: unexpected token at ''2de33']'
    from /usr/local/Cellar/ruby/2.4.2_1/lib/ruby/2.4./json/common.rb:156:in `parse'
    from /usr/local/Cellar/ruby/2.4.2_1/lib/ruby/2.4./json/common.rb:156:in `parse'
    from (irb):1

感谢任何有关如何获取我的字符串数组的建议。注意我不能更改输入(我不能删除单引号)。

【问题讨论】:

  • 你从哪里得到这个字符串的?仅仅因为它看起来有点像 JSON 并不意味着它是 JSON 或 JSON.parse 是适合这项工作的工具。
  • JSON 不允许单引号标记数据?
  • 不,它没有,mrzasa 在their answer 中有一个指向 JSON 标准的链接。 JSON 类似于 JavaScript,但它们不是一回事。

标签: ruby-on-rails arrays json ruby


【解决方案1】:

单引号 ' 在 JSON 中不是有效的字符串分隔符。您需要用双引号替换它们,例如:

JSON.parse("['de33']".gsub("'", "\""))
# => ["de33"] 

JSON standard 说:

字符串是零个或多个 Unicode 字符的序列,用双引号括起来,使用反斜杠转义。字符表示为单个字符串。字符串与 C 或 Java 字符串非常相似。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-07
    • 2017-12-07
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多