将json转换成ruby hash
我有一个JSON对象,其中包含以下值:
@value = {"val":"test","val1":"test1","val2":"test2"}
我想在Ruby中循环来获取键值对。 当我使用@each
,它不会遍历该对象,因为它不是以ruby散列forms:
@value = {"val"=>"test","val1"=>"test1","val2"=>"test2"}
我怎样才能将上面的JSON对象转换为Ruby哈希?
下面的代码段呢?
require 'json' value = '{"val":"test","val1":"test1","val2":"test2"}' puts JSON.parse(value) # => {"val"=>"test","val1"=>"test1","val2"=>"test2"}
你也可以使用ruby的方法:with_indifferent_access,所以你可以用符号或string来访问body。
value = '{"val":"test","val1":"test1","val2":"test2"}' json = JSON.parse(value).with_indifferent_access
然后
json[:val] #=> "test" json["val"] #=> "test"
假设你有一个JSON散列挂在某处,自动将它转换成像WarHog的版本,把你的json散列内容包装在%q {hsh}标签中。 这似乎会自动添加所有必要的转义文本,如WarHog的答案
你有没有尝试过: http : //flori.github.com/json/ 。
如果没有,你可以parsing它? 如果它只是你感兴趣的数组,那么将上面的内容分开将是非常简单的。 ñ