mam*_*aye 5 javascript hash ruby-on-rails
我有一个ruby哈希,我想转换成一个特定的JavaScript哈希.
这是ruby哈希keyval
{
"Former Administration / Neutral"=>24,
"Media Personality / P"=>2,
"Journalist / Neutral"=>32,
"Consultant / Neutral"=>2,
...
"Journalist / P"=>11,
"Expert / Neutral"=>1,
"Activist / Neutral"=>15
}
Run Code Online (Sandbox Code Playgroud)
进入javascript哈希
{data: "Former Administration / Neutral", frequency: (24) },
{data: "Media Personality / P", frequency: (2) },
{data: "Journalist / Neutral", frequency: (32) },
{data: "Consultant / Neutral", frequency: (2) },
...
{data: "Journalist / P", frequency: (11) },
{data: "Expert / Neutral", frequency: (1) },
{data: "Activist / Neutral", frequency: (15) }
Run Code Online (Sandbox Code Playgroud)
试着
var obj = {};
for (var i = 0; i < <%= keyval.size %>; i++) {
obj["data"] = <%= keyval.keys[i] %>;
obj["frequency"] = '(' + <%= @keyval.values[i] %> + ')';
}
Run Code Online (Sandbox Code Playgroud)
但循环不工作obj返回ruby散列的第一个元素,frequency=24并没有逃避空间Former Administration.为什么?
有一个 to_json 方法用于将 ruby 哈希值和数组转换为 json 对象。您可以使用第一个哈希创建一个哈希数组,然后对其调用 to_json 。然后,您将在 ruby 中进行所有数据操作,最后将格式转换为 json。
hash = {
"Former Administration / Neutral"=>24,
"Media Personality / P"=>2,
"Journalist / Neutral"=>32,
"Consultant / Neutral"=>2,
"Journalist / P"=>11,
"Expert / Neutral"=>1,
"Activist / Neutral"=>15
}
arr = []
hash1.each do |k,v|
arr << {:data => k, :frequency => v}
end
arr.to_json
Run Code Online (Sandbox Code Playgroud)
给出
"[{"data":"Journalist / P","frequency":11},{"data":"Activist / Neutral","frequency":15},{"data":"Former Administration / Neutral","frequency":24},{"data":"Expert / Neutral","frequency":1},{"data":"Journalist / Neutral","frequency":32},{"data":"Consultant / Neutral","frequency":2},{"data":"Media Personality / P","frequency":2}]"
Run Code Online (Sandbox Code Playgroud)
你说你想要一个“javascript哈希”,但你的问题最后看起来是一个没有方括号的数组。我的结果是一个有效的 json 对象表示,它是一个对象数组。我认为这实际上就是你想要的。
| 归档时间: |
|
| 查看次数: |
6322 次 |
| 最近记录: |