2011-03-25 21 views
2

我正在使用Rails應用程序作爲JSON API服務。有一個字段可以保存一個或兩個字符串。下面是我如何創建在.xml.builder文件此JSON元素,從扁平哈希獲取信息:如何使用Rails XML Builder製作單個元素的JSON數組?

if hash['advertisements'] 
    hash['advertisements'].each do |ad| 
     xml.advertisements(ad) 
    end 
end 

當有散列兩個字符串,產生的JSON是一個數組:

"advertisements": [ 
    "ad1.png", 
    "ad2.png" 
] 

但是,當只有一個字符串,該元素是一個簡單的字符串:

"advertisements": "ad1.png" 

有沒有一種方法,我可以強制XML Builder生成一個JSON數組,即使只有一個字符串中有H?另請注意,如果原始散列中沒有廣告,則應該沒有呈現json數組。

+1

爲什麼不直接在哈希上調用'to_json'? – 2011-03-25 14:47:08

+0

該服務實際上將生成的XML從構建器轉換爲哈希,然後使用'to_json'呈現它。我確實找到了一個解決方案,我在下面發佈 – 2011-04-16 05:26:09

回答

0

好笑。我意識到應用程序使用XML生成器模板,將其轉換爲散列,然後將其呈現爲json。 (我沒有開發這個...)所以我不得不進入哈希水平使用

hash['advertisements'] = Array.hash['advertisements'] 

這樣做的竅門!

0

我認爲最好也是更簡單的方法是使用JSON構建器!

gem install json 

第二個想法是使用你的ORM序列化程序。這樣你就不必處理所有的用例。

相關問題