2013-11-01 89 views
0

我有一個JSON塊,我想要轉換爲紅寶石散列。將JSON轉換爲嵌套的紅寶石散列

json_blob = {"WHATEVER"=>{"FOO"=>"BAR", "CAT"=>"DAY}}

,這樣,當我使用的數據,我可以檢查數據是否是存在的。例如:

hashed_json_blob[:whatever][:foo]回報"bar"

而且,我可以搞定都不存在(他們在json_blob省略)值。

hashed_json_blob[:whatever][:nonexistant]回報nil

注:如果用數據爲XML,可以工作更簡單的方法。該json_blob使用JSON.parse

+0

艾米特似乎並沒有回答你的問題,因爲你已經提到過JSON.parse。你能解釋一下你想要達到的目標嗎? – Novae

回答

1

執行操作拉您json_blob對象已經哈希(負一在「天」到底缺少引號):

json_blob = {"WHATEVER"=>{"FOO"=>"BAR", "CAT"=>"DAY"}} 

有了這個,你可以這樣做:

json_blob["WHATEVER"] 
=> {"FOO"=>"BAR", "CAT"=>"DAY"} 

json_blob["WHATEVER"]["FOO"] 
=> "BAR" 

相同的數據作爲JSON對象看起來像這樣:

{"WHATEVER":{"FOO":"BAR","CAT":"DAY"}} 
+0

謝謝。我只是沒有這樣想,這幾乎解決了我的問題。 – cdpalmer

0

gem install json

require 'json'

json_blob = {"WHATEVER"=>{"FOO"=>"BAR", "CAT"=>"DAY}}

abc = JSON.parse(json_blob)

現在你可以在abc

+0

這就是我將XML轉換爲JSON格式的方式。據我所知,我認爲只是'JSON.parse'返回JSON – cdpalmer

+0

你的字符串應該是正確的json格式,然後使用'JSON.parse',你可以使用它'hashed_json_blob [:whatever] [:foo]' –