我有下面的Json文件,我需要获取“rec”的role_to_secrets,然后我应该为“prod”环境获取各自的secret值。例如:rec:roles是“resdns”、“dnsmon”、“resmoon”,我需要提取相应的“prod“secrets”prod/user/res_dns.pub、“prod/user.res_mon.pub”
{
"secrets":{
"resdns":{
"_type":"ssh_key",
"_rotatable":false,
"test":"test/user/res_dns.pub",
"prod":"prod/user/res_dns.pub"
},
"dnsmoon":{
"_type":"secret",
"_rotatable":false,
"test":"test/user/dnsmoon.pub",
"prod":"prod/user/resdns.pub"
},
"resmoon":{
"_type":"secret",
"_rotatable":false,
"test":"test/user/res_moon.pub",
"prod":"prod/user/res_moon.pub"
},
"rrservice":{
"_type":"secret",
"_rotatable":false,
"test":"test/user/rrs1ervice.pub",
"prod":"prod/user/rrservice8.pub"
},
"mds":{
"_type":"ssh_key",
"_rotatable":false,
"test":"test/user/mds.pub",
"prod":"prod/user/mds.pub"
}
},
"role_to_secrets":{
"rec":[
"resdns",
"dnsmoon",
"resmoon"
],
"kka":[
"resdns",
"dnsmoon",
"resmoon"
],
"zoper":[
"rrservice",
"mds"
]
}
}
我用了传统的方法来获取数据,但linq有什么简单的方法吗
List<string> lstRecursiveRoles = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(jsonContent["role_to_secrets"]["recursive"].ToString());
List<string> lstSecretValue = new List<string>();
foreach (var recursiveRole in lstRecursiveRoles)
{
lstSecretValue.Add(jsonContent["secrets"][recursiveRole]["prod"].ToString());
}