有没有办法在json结构的键上进行正则表达式查询?

X2t*_*heZ 0 ruby json

说我有一个json结构列表,如

{ "S1" => "foo", "R2" => "bar", "S2" => "baz" }

我想获取"S*"键的数据,

你会怎么做红宝石?有没有办法执行这样的任务?

谢谢,

Pin*_*nyM 5

使用select挑选出你想要的键/值对:

{ "S1" => "foo", "R2" => "bar", "S2" => "baz" }.select{|k,v| k =~ /^S/}
Run Code Online (Sandbox Code Playgroud)

结果是所需的哈希 - 如果您使用的是Ruby 1.9/2.0.但是,在Ruby 1.8中,这将返回一个数组数组 - 您可以将其包装Hash[]以将其转回哈希:

start = { "S1" => "foo", "R2" => "bar", "S2" => "baz" }
Hash[start.select{|k,v| k =~ /^S/}]
Run Code Online (Sandbox Code Playgroud)