2016-01-26 12 views
7

ich ein Array von Rest-Client senden und empfangen sie wie folgt aus: "[1,2,3,4,5]"Convert String in Array in Schienen

Jetzt nur noch konvertieren möchte ich es in Array ohne eval Methode Ruby zu verwenden. Irgendeine Ruby-Standardmethode, die wir dafür verwenden könnten?

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

Ist die API ein bestimmtes Format wie JSON oder YAML verwenden? – Stefan

+0

... denn wenn nicht, erwäge, eins zu adoptieren, du brauchst sowieso ein Serialisierungsformat. –

+1

Die API verwendet das JOSN-Format –

Antwort

3

Vielleicht das?

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

Vorsicht: Dieser Ansatz flacht mehrdimensionale Arrays effektiv ab. –

3

Wenn Sie eval, noch eine weitere Möglichkeit vermeiden wollen:

"[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]