为Highcharts正确格式化数据数组

时间:2013-01-29 20:51:54

标签: ruby ruby-on-rails-3 highcharts

似乎很难让我的数据以正确的格式与高图的饼图一起使用。

如果我按如下方式强制数据,我的图表会出现,所以我知道我已经正确地完成了整合:

data: [
      ['Test', 30],
      ['Other', 70],
      ]

但是当我尝试使用我的实际数据时,它无法正常工作。

我尝试过以下无法解决的问题:

data: <%= Location.browsers.map { |o| [o.type, o.count] }.inspect %>

还尝试过:

data: <%= Location.browsers.map { |o| "#{o.type}, #{o.count}" }.to_json %> 

第一个给我一个这样的结果:

"[[\"Safari\", 6448], [\"Microsoft\", 5253], [\"Microsoft-CryptoAPI\", 5185], [\"Dalvik\", 3870], [\"Chrome\", 3701], [\"Mozilla\", 3239], [\"Android\", 2285], [\"Windows-Update-Agent\", 2018], [\"Internet Explorer\", 1843], [\"Firefox\", 1459]]"

看起来不错。

运行此查询的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

data: <%= raw Location.browsers.map { |o| [o.type, o.count] } %>

data: <%= raw Location.browsers.map { |o| [o.type, o.count] }.to_s %>

应该有用。

答案 1 :(得分:1)

I

"[[\"A\", 10], [\"B\", 30], [\"C\", 0], [\"D\", -10]]"

II

[["A", 10], ["B", 30], ["C", 0], ["D", -10]]

我&amp; II不一样

我是 String ,而II是javascript Array<Array<Object>>

在您的情况下,第一个是第二个版本的stringify-ed版本。您只需要执行相反的操作即可使用$.parseJSON()JSON.parse()

Array取回String

我没有Ruby的第一手经验,但我的猜测就是这样就可以完成这项工作

data: $.parseJSON(<%= Location.browsers.map { |o| [o.type, o.count] }.inspect %>)

<强> Parsing string data into JSON @ jsFiddle