Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#.net-读取JSON_C#_Json_Json.net - Fatal编程技术网

c#.net-读取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

我试图从JSON对象中读取一个环境变量,如下所示:

{
  "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.comis
VAR_NAME
运行它环境变量的名称,或者JSON对象的根元素的名称?另外,请包含有关失败的更多详细信息以及调试失败的步骤。有例外吗?您是否尝试过路径(mysql/credentials/username)的每一步以查看失败的地方?非常开玩笑@Lee,但这就是
JObject.Parse()
的来源。您的JSON无效;请尝试通过jsonlint.comis
VAR_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