我有一个名为sales的数组,其格式如下--
2015 January 2403
2015 February 2420
2015 March 2320
2015 April 2230阵列结构- [[2015, "January", 2403], [2015, "February", 2420]]
我希望用jbuilder构造以下json响应
{
months : ['January', 'February', 'March', 'April']
sales : [2403, 2420, 2320, 2230]
}我试过的东西--
我将所有月份(以及类似的销售)映射到另一个数组中--
@months = @sales.map {|year, month, sales| [month]}然后在jbuilder .
{"months":[["February"],["January"],["December"],["November"]]}这不是我真正想要的,也不是很有效率
帮个忙就好了。
发布于 2016-02-08 15:51:16
在行动中:
array = [[2015, "January", 2403], [2015, "February", 2420]]
@data = array.transpose在.json.jbuilder模板中:
json.months @data[1]
json.sales @data[2]发布于 2016-02-08 15:45:43
这是Array#transpose的一个可爱的用例。
years, months, sales = data.transpose{
"months": months,
"sales": sales
}发布于 2016-02-08 15:44:04
require 'json'
datas = [[2015, "January", 2403], [2015, "February", 2420]]
memo = {months: [], sales: []}
datas.reduce(memo) do |memo, data|
memo[:months] << data[1]
memo[:sales] << data[2]
memo
end
puts JSON.generate(memo)https://stackoverflow.com/questions/35273056
复制相似问题