require 'nice_hash'
my_string = '{"val":"test","val1":"test1","val2":"test2"}'
# on my_hash will have the json as a hash, even when nested with arrays
my_hash = my_string.json
# you can filter and get what you want even when nested with arrays
vals = my_string.json(:val1, :val2)
# even you can access the keys like this:
puts my_hash._val1
puts my_hash.val1
puts my_hash[:val1]
5条答案
按热度按时间jdzmm42g1#
13z8s7eq2#
您还可以使用Rails的
with_indifferent_access
方法,以便可以使用符号或字符串访问正文。然后
dwbf0jvd3#
JSON有一个
[]
方法,这使得从/到JSON的解码和编码变得非常容易和透明。如果object是类似字符串的,则解析字符串并将解析结果作为Ruby数据结构返回。否则,从Ruby数据结构对象生成JSON文本并返回它。
考虑一下:
str
现在包含JSON编码的hash
。使用以下命令可以轻松地将其反转:
自定义对象需要为类定义
to_s
,并在其中将对象转换为Hash,然后对其使用to_json
。2ekbmq324#
假设你有一个JSON散列挂在某处,要自动将其转换为类似WarHog的版本,请将JSON散列内容 Package 在
%q{hsh}
标记中。这似乎会自动添加所有必要的转义文本,就像WarHog的答案一样。
vsikbqxv5#
你可以使用nice_hash gem:https://github.com/MarioRuiz/nice_hash