在rails4中使用json jbuilder渲染json



我有一个rails应用程序,其中一个控制器在我的控制器中有一个变量@data,如下所示:

@data = {
  2013 => {sal: 1000, exp: 400},
  2014 => {sal: 1170, exp: 460},
  2015 => {sal: 660, exp: 1120},
  2016 => {sal: 1030, exp: 540}
}

我有关联的json jbuilder文件,我想用它来渲染json在这个结构

[
  ['Year', 'Sales', 'Expenses'],
  ['2013',  1000,      400],
  ['2014',  1170,      460],
  ['2015',  660,       1120],
  ['2016',  1030,      540]
]

我在看https://github.com/rails/jbuilder,但不知道如何实现我的目标。

这个没有帮助…

json.array! @data do |d|
  ???
end

任何帮助将不胜感激!

我猜jbuilder不适合您的目的。你想要数组,它返回哈希值。

可以这样做:

@data = {
  2013 => {sal: 1000, exp: 400},
  2014 => {sal: 1170, exp: 460},
  2015 => {sal: 660, exp: 1120},
  2016 => {sal: 1030, exp: 540}
}
@mod_data = [['Year', 'Sales', 'Expenses']]
@data.each { |k, v| @mod_data << [k, v[:sal], v[:exp]] }
# or briefly, but perhaps less readable
@data.each_with_object([['Year', 'Sales', 'Expenses']]) { |(k, v), o| o << [k, v[:sal], v[:exp]] } # returns array

最新更新