将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它? 如果它只是你感兴趣的数组,那么将上面的内容分开将是非常简单的。 ñ