У меня есть объект JSON, содержащий следующее значение:
@value = {"val":"test","val1":"test1","val2":"test2"}
Я хочу перебрать его в Ruby, чтобы получить пары ключ / значение. Когда я использую @each
, он не выполняет итерацию по объекту, потому что он не в хэш-форме Ruby:
@value = {"val"=>"test","val1"=>"test1","val2"=>"test2"}
Как я могу преобразовать вышеупомянутый объект JSON в хеш Ruby?
value = '{"val":"test","val1":"test1","val2":"test2"}'
мог бы быть более читабельным.Вы также можете использовать
with_indifferent_access
метод Rails, чтобы получить доступ к телу с помощью символов или строк.затем
источник
Предполагая, что у вас есть где-то хеш JSON, чтобы автоматически преобразовать его в нечто вроде версии WarHog, оберните содержимое вашего хэша JSON в
%q{hsh}
теги.Это, кажется, автоматически добавляет весь необходимый экранированный текст, как в ответе WarHog.
источник
Вы пробовали: http://flori.github.com/json/ ?
В противном случае, вы могли бы просто разобрать это? Если вас интересуют только массивы, то что-то, что можно разделить, будет довольно простым.
источник
Я удивлен, что никто не указал на
[]
метод JSON , который делает его очень простым и прозрачным для декодирования и кодирования из / в JSON.Учти это:
str
теперь содержит кодированный JSONhash
.Это легко изменить, используя:
Пользовательские объекты должны быть
to_s
определены для класса, и внутри него конвертировать объект в хэш, а затем использоватьto_json
его.источник
Вы можете использовать гем nice_hash: https://github.com/MarioRuiz/nice_hash
источник