Reputation: 275
I am trying to read an environment variable from a JSON object that looks like this:
{
"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",
}
}
]
}
}
}
Using C# how would I access the username and password? I have tried this....
envVariable = Environment.GetEnvironmentVariable("EN_VAR_NAME");
var obj = JObject.Parse(envVariable);
var hostname = (string)obj["mysql"]["credentials"]["username"];
But this isn't getting me where.. can anyone please point me in the right direction?
Upvotes: 0
Views: 694
Reputation: 720
dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(envVariable);
var userName = ((dynamic)obj).system_env_json.EN_VAR_NAME.mysql[0].credentials.username
Upvotes: 1
Reputation: 30618
You can parse it as dynamic:
dynamic result = JsonConvert.DeserializeObject<dynamic>(input);
Console.WriteLine(result.system_env_json.EN_VAR_NAME.mysql[0].credentials.username);
Upvotes: 1