2

我使用 Rails 应用程序作为 JSON API 服务。有一个字段可以保存一个或两个字符串。下面是我如何在 .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 构建器创建一个 JSON 数组,即使哈希中只有一个字符串?另请注意,如果原始哈希中没有广告,则不应呈现 json 数组。

4

2 回答 2

0

我认为最好和更简单的方法是使用 JSON 构建器!

gem install json

第二个想法是使用您的 ORM 序列化程序。这样您就不必处理所有用例。

于 2011-03-26T17:32:19.247 回答
0

有趣的。我意识到该应用程序使用 XML 构建器模板,将其转换为哈希,然后将其呈现为 json。(我没有开发这个......)所以我不得不在哈希级别使用

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

那成功了!

于 2011-04-16T05:24:46.253 回答