如何将一个键添加到数组的每个元素并转换为哈希?

时间:2014-11-14 00:24:14

标签: ruby json

我有以下数组,我想将其添加到json文件中。

hrefs2 = hrefs.select { |key, value| key.to_s.match("xxxx") && !key.to_s.match("yyyy") }
images2 = images.select { |key, value| key.to_s.match("hbeu") }

File.open("my_file.json","w") do |f|
f.write({ :links => hrefs2, :images => images2}.to_json)

我遇到的问题是在我的json文件中输出看起来像这样

{
  "links":[link1,link2]
  "images":[image1,image2]
}

我真正想要的输出是这样的

{
  "links":"link1",
  "images":"image1",
  "links":"link2",
  "images":"image2"
}

这是红宝石容易做的事情吗?

谢谢

2 个答案:

答案 0 :(得分:1)

正如在评论中提到的那样,您要生成的JSON具有冲突的密钥。这将为您提供一个有效的JSON,我认为它更接近您所寻找的内容(只要链接数量与图像数量相同):

hrefs2 = [:link1, :link2]
images2 = [:image1, :image2]

my_json = hrefs2.zip(images2).map do |(link, image)|
  {link: link, image: image}
end.to_json

puts my_json  
#>> [{"link":"link1","image":"image1"},{"link":"link2","image":"image2"}]

答案 1 :(得分:0)

我只想编写一些代码来将JSON解析成你想要的任何格式。

另外,正如评论中所提到的,我会记住,如果你以那种格式存储它,如果你想真正与任何内置的集成,你绝对想要将其转换回来。哈希方法。

相关问题