2016-06-03 6 views
0

Ich hatte dieses Array kann sagen,Konvertieren von Array/Hash-String und die Zeichenfolge zurück zum Array/Hash in Ruby Umwandlung

array = [{'key' => 0},1] 

so jetzt array[0]['key'] Wert hat 0. Wenn ich es Zeichenfolge wie folgt konvertieren:

array.to_s 

nun das Array kein Array ist die eine Zeichenfolge, die wie folgt lautet:

"[{'key' => 0},1]" 

Wenn ich array[0] jetzt tun, wird es ausgegeben [

Ich möchte dies zurück in Array konvertieren, so dass ich array[0]['key'] wieder verwenden kann.

Voll Code:

array = [{'key' => 0},1] 
array = array.to_s 
puts array[0]['key'] #Should output 0 but it does not output anything 

Die Sache ist, dass ich schon Sachen wie, dass in der Datenbank gespeichert haben, so jetzt muss ich wieder das Zeug verwenden, so dass der einzige Weg, um die gespeicherte Zeichenfolge zu analysieren ist (was eigentlich ein Array war).

+0

Mögliche Duplikate von [Wie konvertiere ich eine Ruby-Zeichenfolge mit Klammern in ein Array?] (Http://stackoverflow.com/questions/38409/how-do-i-convert-a-ruby-string -with-brackets-to-a-array) – Ilya

Antwort

3
string = "[{'key' => 0},1]" 
array = eval string 
array[0]['key'] # => 0 
+0

mit 'eval' in diesem Fall ist eine schlechte Praxis. – Ilya

+0

Ich sehe, danke für die Warnung, könnten Sie bitte mehr ausarbeiten? –

+0

Sie können lesen [this] (http://stackoverflow.com/questions/1902744/when-is-evelin-in-ruby-justified) Frage – Ilya

Verwandte Themen