【发布时间】:2011-03-25 14:22:39
【问题描述】:
我将 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 数组。
【问题讨论】:
-
为什么不直接在哈希上调用
to_json? -
该服务实际上将生成器生成的 XML 转换为哈希,然后使用
to_json呈现它。不过我确实找到了解决方案,我在下面发布了
标签: ruby-on-rails ruby json ruby-on-rails-2