2011-05-19 144 views
0

以下resp是一個類似於結構中的散列的字符串。如何將字符串等哈希轉換爲紅寶石哈希?

(rdb:1) p resp 
"{\"_id\":\"4dd4eaa872f8be2d380000af\",\"account_id\":\"4dd0d71272f8be0499000009\",\"created_at\":\"2011-05-19T15:47:16+05:45\",\"line_id\":\"4dd4ea9d72f8be2d380000a5\",\"order\":{\"_id\":\"4dd4eaa872f8be2d380000b9\",\"amount\":1.2000000000000002,\"service_charge\":0.0},\"owner_id\":\"4dd0d71272f8be0499000008\",\"tenant_id\":\"4dca3f8e72f8be2950000003\",\"through_api\":true,\"title\":\"run name\",\"updated_at\":\"2011-05-19T15:47:16+05:45\"}" 

如何將其轉換爲散列?

回答

8

這看起來像一個JSON編碼的對象。 試試這個:

require 'json' 
p JSON.load(resp) 

json是對Ruby 1.9的一部分,如果你使用1.8(或其他的Ruby實現),你可能需要安裝使用gem install jsonjson寶石。

0
require 'json' 
hash_a = JSON.parse(resp) 

p hash_a 
    {"through_api"=>true, 
    "created_at"=>"2011-05-19T15:47:16+05:45", 
    "title"=>"run name", 
    "updated_at"=>"2011-05-19T15:47:16+05:45", 
    "account_id"=>"4dd0d71272f8be0499000009", 
    "_id"=>"4dd4eaa872f8be2d380000af", 
    "owner_id"=>"4dd0d71272f8be0499000008", 
    "order"=>{"amount"=>1.2, 
    "_id"=>"4dd4eaa872f8be2d380000b9", 
    "service_charge"=>0.0}, 
    "line_id"=>"4dd4ea9d72f8be2d380000a5", 
    "tenant_id"=>"4dca3f8e72f8be2950000003"}