我有一個Ruby FlickRaw
響應,我想轉換爲JSON。下面是其結構的一部分:Ruby哈希轉換爲JSON只顯示對象名稱
#<FlickRaw::Response:0x7fbd11088678
@h = {
"id" => "72157628092176654",
"primary" => "6332013810",
"owner" => "[email protected]",
"ownername" => "The Library of Congress",
"photo" => [
[ 0] #<FlickRaw::Response:0x7fbd1106a628
@h = {
"id" => "6332007340",
"secret" => "4d92733d70",
"server" => "6217",
"farm" => 7,
"title" => "Woodrow Wilson, Twenty-Eighth President of the United States (LOC)",
"isprimary" => "0"
},
attr_reader :flickr_type = "photo"
>,
要將其轉換成JSON,我想簡單地採取response.to_hash.to_json
,但這會導致如下:
=> "{"id":"72157628092176654",
"primary":"6332013810",
"owner":"[email protected]",
"ownername":"The Library of Congress",
"photo":["#<FlickRaw::Response:0x007fbd1106a628>","#<FlickRaw::Response:0x007fbd110704d8>","#<FlickRaw::Response:0x007fbd11079c40
...
正如你所看到的,它僅僅輸出#<FlickRaw::Response>
對象而不是實際的內容。所以,它只是停止在那裏遞歸。我怎樣才能得到它實際上輸出的東西,如上面的awesome_print
所得到的輸出,也顯示了單個照片字段?
我試過以下,這讓我的正確表示了光陣列:
photos.photo.map { |h| h.to_hash }.to_json
但似乎相當複雜。任何一種更簡單的方式來將完整響應格式化爲JSON,而無需先修復照片數組?
'photos.photo.map(&:to_hash).to_json'? :) – 2012-12-05 16:48:23
謝謝,這修復了'照片'數組,但我希望一次性將整個響應轉換爲JSON,如果可能的話。我澄清了那句話! – slhck