c#.net-读取JSON
我试图从JSON对象中读取一个环境变量,如下所示:c#.net-读取JSON,c#,json,json.net,C#,Json,Json.net,我试图从JSON对象中读取一个环境变量,如下所示: { "staging_env_json": {}, "running_env_json": {}, "system_env_json": { "EN_VAR_NAME": { "mysql": [ { "name": "name-here", "label": "label-here", "tags": [ "my
{
"staging_env_json": {},
"running_env_json": {},
"system_env_json": {
"EN_VAR_NAME": {
"mysql": [
{
"name": "name-here",
"label": "label-here",
"tags": [
"mysql",
"relational"
],
"plan": "",
"credentials": {
"hostname": "host",
"port": "port",
"name": "name-here",
"username": "username",
"password": "password",
}
}
]
}
}
}
使用C#如何访问用户名和密码?我试过这个
envVariable = Environment.GetEnvironmentVariable("EN_VAR_NAME");
var obj = JObject.Parse(envVariable);
var hostname = (string)obj["mysql"]["credentials"]["username"];
但这并不能让我达到目的。。有人能给我指出正确的方向吗?您可以将其解析为动态:
dynamic result = JsonConvert.DeserializeObject<dynamic>(input);
Console.WriteLine(result.system_env_json.EN_VAR_NAME.mysql[0].credentials.username);
dynamic result=JsonConvert.DeserializeObject(输入);
Console.WriteLine(result.system\u env\u json.EN\u VAR\u NAME.mysql[0].credentials.username);
您可以将其解析为动态:
dynamic result = JsonConvert.DeserializeObject<dynamic>(input);
Console.WriteLine(result.system_env_json.EN_VAR_NAME.mysql[0].credentials.username);
dynamic result=JsonConvert.DeserializeObject(输入);
Console.WriteLine(result.system\u env\u json.EN\u VAR\u NAME.mysql[0].credentials.username);
dynamic obj=Newtonsoft.Json.JsonConvert.DeserializeObject(envVariable);
var userName=((动态)obj).system_env_json.EN_var_NAME.mysql[0].credentials.userName
dynamic obj=Newtonsoft.Json.JsonConvert.DeserializeObject(envVariable);
var userName=((动态)obj).system_env_json.EN_var_NAME.mysql[0].credentials.userName
非常开玩笑@Lee,但这就是JObject.Parse()
的来源。您的JSON无效;请尝试通过jsonlint.comisVAR_NAME
运行它环境变量的名称,或者JSON对象的根元素的名称?另外,请包含有关失败的更多详细信息以及调试失败的步骤。有例外吗?您是否尝试过路径(mysql/credentials/username)的每一步以查看失败的地方?非常开玩笑@Lee,但这就是JObject.Parse()
的来源。您的JSON无效;请尝试通过jsonlint.comisVAR_NAME
运行它环境变量的名称,或者JSON对象的根元素的名称?另外,请包含有关失败的更多详细信息以及调试失败的步骤。有例外吗?您是否尝试过路径(mysql/credentials/username)的每一步以查看其失败的地方?如果这是一个愚蠢的问题,很抱歉-但是在JSON对象中存在“mysql”的地方,这实际上是作为p-mysql返回的,但我无法使用以下内容进行构建:var hostname=obj.system\u env\u JSON.EN\u var\u NAME.p-mysql[0].credentials.username;因为它不喜欢p-有什么办法可以解决这个问题吗?这应该行得通。((动态)obj).system_env_json.EN_VAR_NAME[“p-mysql”][0].credentials.usernameSorry如果这是一个愚蠢的问题-但是在json对象中有“mysql”的地方,它实际上是作为p-mysql返回的,但我无法使用它进行构建:VAR=obj.system_env_json.EN_VAR_NAME.p-mysql[0].credentials.username;因为它不喜欢p-有什么办法可以解决这个问题吗?这应该行得通。((动态)obj).system_env_json.EN_VAR_NAME[“p-mysql”][0].credentials.username