1

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

如果我强制数据如下,我的图表就会出现,所以我知道我已经正确完成了集成:

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]]"

看起来不错。

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

4

2 回答 2

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

或者

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

应该管用。

于 2013-02-01T12:28:13.097 回答
1

一世

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

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

I & II 不一样

I is a Stringwhile II is a javascriptArray<Array<Object>>

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

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

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

将字符串数据解析成 JSON @ jsFiddle

于 2013-02-01T10:58:41.540 回答