繁体   English   中英

使用JBuilder(Ruby),如何创建哈希数组

[英]Using JBuilder (Ruby), how to create an array of hashes

我正在使用JBuilder Ruby,并且最终要创建一个看起来像这样的JSON哈希:

"must" : {
   "ids" : {
       "values" : [1,2]
   },
   "range" : {
       "visits" : 
         {
           "gte" : 10
         }

   }
}

请记住,我没有要迭代的现有数组。 我看过的所有示例都假设我有一个数组。 我不。 我想即时创建此JSON。

我不建议对静态数据使用Jbuilder。 Jbuilder的全部目的是提供一个DSL,用于将复杂的对象图转换为JSON。 在这种情况下,您最好将Ruby哈希直接转换为JSON:

require 'json' # You'll need some type of JSON library which provides `Hash#to_json`
{
  must: {
    ids: {
      values: [1, 2]
    },
    range: {
      visits: {
        gte: 10
      }
    }
  }
}.to_json

为了学习起见,这是如何使用Jbuilder手动构建相同的JSON字符串:

json = Jbuilder.new

json.set! :object do
  json.set! :must do
    json.set! :ids, [1, 2]
  end
  json.set! :range do
    json.set! :visits do
      json.set! :gte, 10
    end
  end
end.to_json # Note that Jbuilder even returns a Hash that need to be converted

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM