Ruby 将哈希数组数据转换为特定图形格式数据的最佳方法是什么

Ruby 将哈希数组数据转换为特定图形格式数据的最佳方法是什么,ruby,hash,backslash,gsub,amcharts,Ruby,Hash,Backslash,Gsub,Amcharts,我有一个从下面的映射函数返回的哈希数组。我正在尝试为一个图填充数据(我使用的是AM charts),它以下面提到的特定格式获取数据- 公司记录的样本结构 1.9.3p327 :073 > Company => Company(id: integer, name: string, contact_no: integer, email_id: string, website: string, fax_no: integer, created_at: datetime, updated_

我有一个从下面的映射函数返回的哈希数组。我正在尝试为一个图填充数据(我使用的是AM charts),它以下面提到的特定格式获取数据-

公司记录的样本结构

1.9.3p327 :073 > Company
 => Company(id: integer, name: string, contact_no: integer, email_id: string, website: string, fax_no: integer, created_at: datetime, updated_at: datetime, divisions_count: integer) 

@all_companies = Company.all
映射功能:

@all_companies = @all_companies.map {|each_company| { Country: each_company.name, Visits: each_company.divisions_count} }
  var chartData = [{
      country: "USA",
      visits: 4025
  }, {
      country: "China",
      visits: 1882
  }, {
      country: "Japan",
      visits: 1809
  }, {
      country: "Germany",
      visits: 1322
  }]
上述查询的输出格式

[{:country=>“三星”、:vists=>8}、{:country=>“Natraj”、:vists=>2}、{:country=>“特百惠”、:vists=>5}、{:country=>“Transcen”、:vists=>0}、{:country=>“camlin”、:vists=>0}]

图形数据输入格式:

@all_companies = @all_companies.map {|each_company| { Country: each_company.name, Visits: each_company.divisions_count} }
  var chartData = [{
      country: "USA",
      visits: 4025
  }, {
      country: "China",
      visits: 1882
  }, {
      country: "Japan",
      visits: 1809
  }, {
      country: "Germany",
      visits: 1322
  }]
我使用的是Ruby 1.9.3-p327。我需要将输出数组转换为特定的图形格式。我尝试通过以下步骤实现同样的目标:-

  1.9.3p327 :070 >     @all_companies = @all_companies.to_s.gsub(":","")
 => "[{country=>\"Samsung\", visits=>8}, {country=>\"Natraj\", visits=>2}, {country=>\"Tupperware\", visits=>5}, {country=>\"Transcen\", visits=>0}, {country=>\"camlin\", visits=>0}]" 
1.9.3p327 :071 >     @all_companies = @all_companies.gsub("=>",": ")
 => "[{country: \"Samsung\", visits: 8}, {country: \"Natraj\", visits: 2}, {country: \"Tupperware\", visits: 5}, {country: \"Transcen\", visits: 0}, {country: \"camlin\", visits: 0}]" 
1.9.3p327 :072 > puts @all_companies
[{country: "Samsung", visits: 8}, {country: "Natraj", visits: 2}, {country: "Tupperware", visits: 5}, {country: "Transcen", visits: 0}, {country: "camlin", visits: 0}]
 => nil 
1.9.3p327 :073 > 
现在,当我试图在图形中显示数据时,我得到以下语法错误:-

var chartData = [{country: "Samsung", visits: 8}, {country: "Natraj", visits: 2}, {country: "Tupperware", visits: 5}, {country: "Transcen", visits: 0}, {country: "camlin", visits: 0}]
firebug控制台中的语法错误现在指向上述数据中的

有什么办法可以帮助我完成最后一步,从而获得所需的图形格式

问题更新

1.9.3p327 :073 > Company
 => Company(id: integer, name: string, contact_no: integer, email_id: string, website: string, fax_no: integer, created_at: datetime, updated_at: datetime, divisions_count: integer) 

@all_companies = Company.all
我需要以下格式的数据:-

  var chartData = [

      {
          country: "Samsung",
          visits: 8
      },
      {
          country: "Natraj",
          visits: 2
      },
      {
          country: "Tupperware",
          visits: 5
      },
      {
          country: "Transcen",
          visits: 0
      },
      {
          country: "camlin",
          visits: 0
      }

      ]

谢谢。

因为您没有打印您的价值。控制台仅显示它,双引号被转义。
否则你怎么知道我的字符串:“我的”字符串“什么”结束

如果你这么做的话

puts @specific_details.to_s
您不会看到那些双引号被转义

我需要将输出数组转换为特定的图形格式。

使用Rubygem进行此操作-

require "awesome_print"

hsh = [{:Country=>"Samsung", :Visits=>8}, {:Country=>"Natraj", :Visits=>2}, 
       {:Country=>"Tupperware", :Visits=>5}, {:Country=>"Transcen", :Visits=>0}, 
      {:Country=>"camlin", :Visits=>0}]

ap hsh,{:index => false}
输出

[
    {
        :Country => "Samsung",
         :Visits => 8
    },
    {
        :Country => "Natraj",
         :Visits => 2
    },
    {
        :Country => "Tupperware",
         :Visits => 5
    },
    {
        :Country => "Transcen",
         :Visits => 0
    },
    {
        :Country => "camlin",
         :Visits => 0
    }
]

多亏了这个,我才明白

这就是我克服语法错误的方法

在控制器中:-

def company_division_stats
    @all_companies = @companies_data = Company.all 

    @specific_details = @all_companies = @all_companies.map {|each_company| { country: each_company.name, visits: each_company.divisions_count} } 
    #@all_companies = @all_companies.to_s.gsub(":","")
    #@all_companies = @all_companies.gsub("=>",": ")

    respond_to do |format|
      unless @all_companies.nil?
        format.html
        format.json { render json: @specific_details, status: :created } #in the browser url would be:- localhost:3000/company_division_stats.json
      end
    end
var chartData = <%= @all_companies.to_json.html_safe %>
视图中的:-

def company_division_stats
    @all_companies = @companies_data = Company.all 

    @specific_details = @all_companies = @all_companies.map {|each_company| { country: each_company.name, visits: each_company.divisions_count} } 
    #@all_companies = @all_companies.to_s.gsub(":","")
    #@all_companies = @all_companies.gsub("=>",": ")

    respond_to do |format|
      unless @all_companies.nil?
        format.html
        format.json { render json: @specific_details, status: :created } #in the browser url would be:- localhost:3000/company_division_stats.json
      end
    end
var chartData = <%= @all_companies.to_json.html_safe %>
var chartData=

请添加正确的最终结果。d.danailov-问题更新,现在它显示了所需的正确最终结果。我可以知道为什么问题被否决,并且有一个向上的投票来结束这个问题吗?亲爱的各位,我已经更新了我的问题和问题标题。希望问题现在更清楚。如果是这样的话,如果你能取消你的投票权,我将不胜感激。请重写你的问题。展示你拥有的和你想要的。没别的。国家,访问不应该被引用。@boddhisattva现在就看!!巴拜-谢谢你的建议。对不起,多亏了oldergod,当我在控制台上执行
放置@all_companys
时,我发现反斜杠已经不存在了。请参阅我更新的问题标题和更新的问题,这是我在以适当格式获取图形输入数据时面临的当前问题。请与我赤裸裸为任何不便+1介绍我的美丽_生成和可怕的打印宝石。我以前不知道有像“美丽”这样的东西存在。我认为这将是非常有益的未来。谢谢,奥尔德戈德-我现在明白你的意思了。谢谢我已经更新了我的问题和问题标题。请检查.oldergod-+1以指出,
“[{国家:\'Samsung\”,访问:8},{国家:\'Natraj\,访问:2},{国家:\'Tupperware\”,访问:5},{国家:\'Transcen\,访问:0},{国家:\'camlin\,访问:0}]”中的反斜杠不必单独删除。
。非常感谢。