如何将字符串转换为数组? (JSON.parse错误)

时间:2018-03-09 22:27:00

标签: ruby-on-rails arrays json ruby

如何将类似于数组的字符串转换为实际数组?这个主题建议我应该使用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

有关如何获取我的数组字符串的任何建议都表示赞赏。请注意,我无法更改输入(我无法删除单引号)。

1 个答案:

答案 0 :(得分:3)

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

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

JSON standard说:

  

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