ruby-on-rails - 如何使用 Rails XML Builder 创建单个元素 JSON 数组?

标签 ruby-on-rails ruby json ruby-on-rails-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 数组。

最佳答案

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

gem install json

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

关于ruby-on-rails - 如何使用 Rails XML Builder 创建单个元素 JSON 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5433715/

相关文章:

ruby-on-rails - Heroku db :push doesnt work. 说即使在安装了 Taps 之后它也需要安装 Taps

ruby-on-rails - 如何在 Rails 中更改 "3 errors prohibited this foobar from being saved"验证消息?

ruby-on-rails - Rake 测试错误 - ActiveRecord::Fixture::FormatError: ActiveRecord::Fixture::FormatError

ruby-on-rails - 是否有替代方法 Array#product 的使用方法?

json - 如何检查一个值是否存在于 JSONB 列表中

javascript - 如何使用nodejs更新dynamoDB中的项目?

ruby-on-rails - 使用 Redis 作为身份验证 token

ruby-on-rails - 使用 nginx + unicorn 的多个 Rails 4 应用程序

ruby-on-rails - 如何重构 Rails 'params' 方法

javascript - asp.net mvc json.net 响应