我有下面的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()); }