正确设置高图表的数据数组格式



似乎正在努力以正确的格式获取我的数据以用于高图表的饼图。

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

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

看起来还可以。

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

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

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

应该工作。

I

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

第二

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

I 和 II 不一样

I 是 String,而 II 是 JavaScript Array<Array<Object>>

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

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

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

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

最新更新