2013-06-24 13 views
10

Mam ciąg znaków z tablicy tablic wewnątrz:Jak przekonwertować ciąg na tablicę tablic?

"[[1, 2], [3, 4], [5, 6]]" 

mogę przekonwertować to do tablicy tablic, bez użycia eval lub wyrażenia regularnego, gsub itd?

Czy mogę przekształcić go:

[[1, 2], [3, 4], [5, 6]] 
+0

bez używania eval lub reg ex, gsub itp więc to, co chcesz zrobić to z? – leonhart

+0

Czy istnieje prosty sposób na zrobienie tego? – tomgalpin

+1

Myślę, że 'eval' jest najprostszym sposobem, jeśli martwisz się bezpieczeństwem, sprawdź ciąg znaków za pomocą wyrażenia regularnego, aby się upewnić. ale wydaje się, że nie chcesz obu. – leonhart

Odpowiedz

21

jak o następujących?

require 'json' 
arr = JSON.parse("[[1, 2], [3, 4], [5, 6]]") # => [[1, 2], [3, 4], [5, 6]] 
arr[0] # => [1, 2] 
+2

Jak mówią: "Bingo!" –

+2

To działało idealnie. Dzięki!! – tomgalpin

9

To samo można zrobić za pomocą standardowego Ruby dokumentacji libaray - YAML:

require 'yaml' 

YAML.load("[[1, 2], [3, 4], [5, 6]]") 
# => [[1, 2], [3, 4], [5, 6]] 
Powiązane problemy