samcooper11
samcooper11

Reputation: 275

c# .net - read JSON

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

Answers (2)

joordan831
joordan831

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

Richard
Richard

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

Related Questions