Mam obiekt JSON zawierający następującą wartość:
@value = {"val":"test","val1":"test1","val2":"test2"}
Chcę przejść przez to w Rubim, aby uzyskać pary klucz / wartość. Kiedy używam @each
, nie wykonuje iteracji przez obiekt, ponieważ nie jest w formie skrótu Ruby:
@value = {"val"=>"test","val1"=>"test1","val2"=>"test2"}
Jak mogę przekonwertować powyższy obiekt JSON na skrót Ruby?
value = '{"val":"test","val1":"test1","val2":"test2"}'
mogłoby być bardziej czytelne.Możesz także użyć
with_indifferent_access
metody Railsów, aby uzyskać dostęp do treści za pomocą symboli lub łańcuchów.następnie
źródło
Zakładając, że gdzieś kręci się skrót JSON, aby automatycznie przekonwertować go na coś podobnego do wersji WarHog, zawiń zawartość hash JSON w
%q{hsh}
tagi.Wydaje się, że automatycznie dodaje cały niezbędny tekst ucieczki, jak w odpowiedzi WarHog.
źródło
Czy próbowałeś: http://flori.github.com/json/ ?
W przeciwnym razie możesz to po prostu przeanalizować? Jeśli interesują Cię tylko tablice, coś, co można podzielić na powyższe, będzie dość proste.
źródło
Jestem zaskoczony, że nikt nie wskazał
[]
metody JSON , która sprawia, że dekodowanie i kodowanie z / do JSON jest bardzo łatwe i przejrzyste.Rozważ to:
str
zawiera teraz kodowanie JSONhash
.Łatwo to odwrócić za pomocą:
Obiekty niestandardowe muszą być
to_s
zdefiniowane dla klasy, a wewnątrz nich konwertować obiekt na Hash, a następnie używaćto_json
na nim.źródło
Możesz użyć klejnotu nice_hash: https://github.com/MarioRuiz/nice_hash
źródło