从字符串哈希中提取键

时间:2018-02-16 18:44:27

标签: arrays ruby

我有以下哈希字符串:

arr = ["{:id=>1, :name=>\"a\"}", "{:id=>2, :name=>\"b\"}"]

如何解析数据并获取如下数组中的所有id键:[1,2]

感谢。

3 个答案:

答案 0 :(得分:2)

看起来像需要评估的Ruby哈希,所以在地图中使用eval:

arr.map{|hash| eval(hash)[:id]}

答案 1 :(得分:2)

由于这个字符串数组似乎不是完全有效的JSON,您可以通过执行以下操作来解析ID:

isNaN

希望这有帮助!

答案 2 :(得分:-1)

这是一个JSON字符串数组。您可以使用JSON.parse来解析它们

arr = ["{:id=>1, :name=>\"a\"}", "{:id=>2, :name=>\"b\"}"]
ids = arr.map do |raw| # iterate on each string
  JSON.parse(raw)[:id] # parse and extract the id
end

puts ids # => [1,2]