Wie kann ich Hash.inspect oder Array.inspect umkehren? (aka .to_s) in Ruby

7

Ich habe versehentlich einen Ruby-Hash in Ruby 1.9 gespeichert, indem ich my_hash.to_s aufgerufen habe, was gleich my_hash.inspect ist. Dies gab mir eine solche Zeichenfolge:

%Vor%

Ich möchte das jetzt wieder in einen Hash umwandeln. Wie wird das gemacht?

Ich suche keine Erklärung für andere Serialisierungstechniken, ich kenne sie. Ich brauche nur einen Weg, um das zurück zu machen, damit ich es richtig speichern kann.

    
Cristiano Betta 15.08.2011, 19:33
quelle

2 Antworten

19

Die schnellste Antwort lautet: eval .

%Vor%     
Sony Santos 15.08.2011, 19:38
quelle
6

eval es.

Natürlich ist das nicht sicher für willkürliche Eingaben, aber Sie haben gesagt, Sie kennen Serialisierungsprobleme. Es funktioniert nicht für Sammlungen, die rekursive Referenzen oder andere Objekte enthalten, für die eval (x.inspect)! = X.

gilt     
Jürgen Strobel 15.08.2011 19:37
quelle

Tags und Links