Javascript 更改Ruby哈希的值

Javascript 更改Ruby哈希的值,javascript,ruby-on-rails,ruby,morris.js,Javascript,Ruby On Rails,Ruby,Morris.js,我正试图使用morris.js()制作一个油炸圈饼图,但在正确格式化数据方面遇到了一些问题 目前,数据的格式是这样的 {"2D"=>"6768.96", "1DP"=>"293.63", "3D"=>"84.97", "1D"=>"361.83", "GR-RES"=>"19083.85", "GR-COM"=>"11254.69"} 下面是我目前的代码 <%= content_tag :div, "", id: "shipments-by-servi

我正试图使用morris.js()制作一个油炸圈饼图,但在正确格式化数据方面遇到了一些问题

目前,数据的格式是这样的

{"2D"=>"6768.96", "1DP"=>"293.63", "3D"=>"84.97", "1D"=>"361.83", "GR-RES"=>"19083.85", "GR-COM"=>"11254.69"}
下面是我目前的代码

<%= content_tag :div, "", id: "shipments-by-service-type", data: {shipments: @details.group(:family).sum("base_charge + discount")} %>


jQuery ->
  Morris.Donut
    element: "shipments-by-service-type"
    data: $('#shipments-by-service-type').data('shipments')

jQuery->
莫里斯,甜甜圈
元素:“按服务类型的装运”
数据:$(“#按服务类型划分的装运”)。数据(“装运”)

这是我第一次将数据传递到js并进行解析以生成图形,如有任何帮助,我将不胜感激

因此,一旦您纠正了我在上面的评论中指出的引号问题,要么转义,要么将外部引号切换为单引号,此javascript将解析您的输入,并为甜甜圈图做好准备

var dataArr = [];
var obj = $("#shipments-by-service-type-simple").data('shipments');
for ( var prop in obj) {
  dataArr.push({"label": prop, "value": obj[prop]});
}

Morris.Donut({
  element: 'donut-example',
  data: dataArr
});

这是你的电话号码。拉斐尔似乎不喜欢十进制值,并且正在抛出错误。可能需要对您的值进行四舍五入

在客户端按服务类型提供的
发货中,数据在html中的实际显示情况如何?
我希望第一个元素是标签,第二个元素是值。我马上看到的一个问题是,您需要在
数据传送
\”
或将外部双引号更改为单引号,这是因为当您执行JSON.parse以将文本转换为对象时,它将在
=
之后看到第一个双引号,然后在
之后看到下一个双引号{
并假设它已完成解析,当然您没有有效的对象