javascript - Rails 生成 JSON 对象

标签 javascript jquery ruby-on-rails ruby json

我想在从数据库中获取数据时生成一个 JSON 对象。

def duration
  return @data[:duration] unless @data[:duration].nil?

  @data[:duration] = per_hour.collect do | val |
    [val[0], val[1]]
  end
end

我得到了我需要的数据,但数组不正确。我的观点如下:

var array = <%= raw @duration_data.to_json %>;

我的数组看起来像这样:

var array = [{"data": [[0,0],[1,60.0]] }];

但我需要的是:

var array = [{"data": {"0":0, "1":60.0} }];

最佳答案

您只需要将数组转换为哈希:

@data[:duration] = per_hour.collect do |val|
  [val[0], val[1]]
end.to_h

对于 Ruby 1.9:

@data[:duration] = Hash[*per_hour.collect { |val| [val[0], val[1]] }]

关于javascript - Rails 生成 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31449578/

相关文章:

javascript - Mongoose 小猫示例不起作用

javascript - Heroku 不会加载index.html

javascript - Async-Await:即使一个错误,如何在多个等待调用中获取数据?

PHP 变量到 JavaScript

jquery - 我应该使用 Expando 还是缓存 jQuery 对象?

ruby-on-rails - 安装发动机的 RSpec 测试路线

javascript - Alt flux action : _this. actions is undefined 即使调用了 this.generateActions

jquery - ScrollLeft() 不适用于 Firefox

ruby-on-rails - 如何更改 f.has_many 中的标题和名称按钮? rails 上的 active_admin

ruby-on-rails - 从 spree 1-3 升级到 2-0-稳定