поиск определенной строки по значению из Json и присвоение переменной в ruby - PullRequest
0 голосов
/ 17 октября 2018

Вот мой файл 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..aaaaaaaazf5e27hbpst2pxarisi5qvkmgotwm5ro4nhjkkjq4mmxengckv2a",
  "group" : "RC_osbackup_svc_grp_d0007cz_asdf24"
}

Я хочу найти строку 'osbackup_config' и присвоить ей переменную 'os_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']

1 Ответ

0 голосов
/ 17 октября 2018

Почему не это?

r['bucketNames'].find { |v| v.include?'osbackup_config' }

или

os_conf  = r['bucketNames'].find { |v| v['osbackup_config'] }

osbackup_vman = r['bucketNames'].find { |v| v['osbackup_vman'] }
...