2013-06-24 20 views
10

Ho uno stringa con un array di array interno:Come si converte una stringa in una matrice di array?

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

Posso convertire questo alla array di array, senza usare eval o un'espressione regolare, gsub, ecc?

Posso fare trasformarlo in:

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

senza l'utilizzo di ex eval o reg, gsub, ecc in modo da che cosa si vuole fare con? – leonhart

+0

c'è un modo semplice per farlo? – tomgalpin

+1

Penso che 'eval' sia il modo più semplice, se ti preoccupi della sicurezza, controlla la stringa con regex per essere sicuro. ma sembra che tu non voglia entrambi. – leonhart

risposta

21

Come circa la seguente?

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

Come si suol dire "Bingo!" –

+2

Questo ha funzionato perfettamente. Grazie!! – tomgalpin

9

Lo stesso può essere fatto utilizzando Rubino standard di documentazione libaray - YAML:

require 'yaml' 

YAML.load("[[1, 2], [3, 4], [5, 6]]") 
# => [[1, 2], [3, 4], [5, 6]] 
Problemi correlati