在rails中将字符串转换为Array

Ghu*_*ani 13 ruby json ruby-on-rails postman

我从其他客户端发送一个数组,并收到它像这样: "[1,2,3,4,5]"

现在我只想将它转换为Array而不使用Ruby的eval 方法.我们可以使用任何Ruby的默认方法吗?

 "[1,2,3,4,5]" => [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

Car*_*and 40

require 'json'

JSON.parse "[1,2,3,4,5]"
  #=> [1, 2, 3, 4, 5] 

JSON.parse "[[1,2],3,4]"
  #=> [[1, 2], 3, 4] 
Run Code Online (Sandbox Code Playgroud)

  • 考虑到它的投票,这应该是公认的答案 (3认同)

Ho *_*Man 6

也许这个?

   s.tr('[]', '').split(',').map(&:to_i)
Run Code Online (Sandbox Code Playgroud)

  • 注意:此方法有效地展平了多维数组. (3认同)

shi*_*vam 5

如果你想避免eval,还有另一种方法:

"[1,2,3,4,5]".scan(/\d+/).map(&:to_i) #assuming you have integer Array as String
#=> [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)