从Json中搜索值中的特定字符串,并在ruby中分配给变量
这是我的json文件从Json中搜索值中的特定字符串,并在ruby中分配给变量,json,ruby,chef-infra,Json,Ruby,Chef Infra,这是我的json文件 { "osNameSpace" : "prod", "bucketNames" : [ "RC_osbackup_config_d0007cz_idfdafa3", "IC_osbackup_vman_d0007cz_dasdc3w" ], "user" : "RC_osbackup_svc_user_d0007cz_dasf2fd", "userOcid" : "rcid1.user.oc1..aaaaaaaazf5e27hbpst2pxarisi5qvk
{
"osNameSpace" : "prod",
"bucketNames" : [ "RC_osbackup_config_d0007cz_idfdafa3", "IC_osbackup_vman_d0007cz_dasdc3w" ],
"user" : "RC_osbackup_svc_user_d0007cz_dasf2fd",
"userOcid" : "rcid1.user.oc1..aaaaaaaazf5e27hbpst2pxarisi5qvkmgotwm5ro4nhjkkjq4mmxengckv2a",
"group" : "RC_osbackup_svc_grp_d0007cz_asdf24"
}
我想搜索字符串“osbackup\u config”并分配给“os\u conf”变量。字符串“osbackup_vman”与“os_vman”类似
我尝试了以下方法,但没有成功
input_file="/root/testjson_2.json"
r = JSON.parse(File.read(input_file))
r["bucketNames"].find {|r1| r1['dbbackup_rman']=='rman'}['rman_bucket_name']
r["bucketNames"].find {|r1| r1['dbbackup_config']=='config'}['config_bucket_name']
为什么不是这个
r['bucketNames'].find { |v| v.include?'osbackup_config' }
或
注意你的空间。r['bucketNames']。查找{str | str.include?'osbackup_config'}
os_conf = r['bucketNames'].find { |v| v['osbackup_config'] }
osbackup_vman = r['bucketNames'].find { |v| v['osbackup_vman'] }