Ich habe ein JSON-Objekt mit dem folgenden Wert:
@value = {"val":"test","val1":"test1","val2":"test2"}
Ich möchte es in Ruby durchlaufen, um die Schlüssel / Wert-Paare zu erhalten. Wenn ich es verwende @each
, durchläuft es das Objekt nicht, da es nicht in der Ruby-Hash-Form vorliegt:
@value = {"val"=>"test","val1"=>"test1","val2"=>"test2"}
Wie kann ich das obige JSON-Objekt in einen Ruby-Hash konvertieren?
value = '{"val":"test","val1":"test1","val2":"test2"}'
hätte besser lesbar sein können.Sie können auch die Rails-
with_indifferent_access
Methode verwenden, um mit Symbolen oder Zeichenfolgen auf den Body zuzugreifen.dann
quelle
Angenommen, Sie haben irgendwo einen JSON-Hash, um ihn automatisch in eine WarHog-Version zu konvertieren, verpacken Sie Ihren JSON-Hash-Inhalt in
%q{hsh}
Tags.Dies scheint automatisch den gesamten erforderlichen maskierten Text hinzuzufügen, wie in WarHogs Antwort.
quelle
Haben Sie versucht: http://flori.github.com/json/ ?
Gelingt dies nicht, könnten Sie es einfach analysieren? Wenn Sie nur an Arrays interessiert sind, ist es recht einfach, die oben genannten Punkte aufzuteilen.
quelle
Ich bin überrascht, dass niemand auf die
[]
Methode von JSON hingewiesen hat , die es sehr einfach und transparent macht, von / nach JSON zu dekodieren und zu kodieren.Bedenken Sie:
str
Enthält jetzt den JSON-Codehash
.Es ist einfach, es umzukehren mit:
Benutzerdefinierte Objekte müssen
to_s
für die Klasse definiert werden. Darin wird das Objekt in einen Hash konvertiert und anschließend verwendetto_json
.quelle
Sie können das Juwel nice_hash verwenden: https://github.com/MarioRuiz/nice_hash
quelle