Convert string into Array in rails

2019-01-18 12:51发布

问题:

I send an array from rest client and received it like this: "[1,2,3,4,5]"

Now I just want to convert it into Array without using Ruby's eval method. Any Ruby's default method that we could use for this?

 "[1,2,3,4,5]" => [1,2,3,4,5]

回答1:

Perhaps this?

   s.tr('[]', '').split(',').map(&:to_i)


回答2:

require 'json'

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

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


回答3:

If you want to avoid eval, yet another way:

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