2016-01-26 19 views
7

böyle kalanı istemciden bir dizi göndermek ve bunu aldı:dönüştürme dizesi

"[1,2,3,4,5]" Şimdi sadece Ruby'nin eval yöntemini kullanmadan Array haline dönüştürmek istiyorum. Herhangi bir Ruby'nin bunun için kullanabileceğimiz varsayılan yöntemi?

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

API JSON veya YAML gibi özel bir biçim kullanıyor mu? – Stefan

+0

... çünkü eğer değilse, birini kabul etmeyi düşünün, bir seri hale getirme formatına ihtiyacınız var. –

+1

API, JOSN biçiminde –

cevap

3

Belki bu? Eğer eval kaçınmak istiyorsanız

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

Dikkat: Bu yaklaşım çok boyutlu dizileri etkin bir şekilde düzleştirir. –

3

, henüz başka bir yolu:

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

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

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