appsettings.json值未显示在反序列化对象中

时间:2019-02-04 20:55:04

标签: c# .net json json.net

我有一个json文件,其中的元素以这种方式排列:

{
     "Connection": 
      {
        "data": "...connection string..."
      }
     "Log":
     { 
       "stuff": " value"
     }
etc...
}

我有这个模型:

 public class Connection
    {
        public string data { get; set; }
    } 



   public class RootObject
    {
        public Connection Connection { get; set; }
    }

并尝试以这种方式填充:

   using (StreamReader r = new StreamReader("appsettings.json"))
        {
            string json = r.ReadToEnd();
           var root = JsonConvert.DeserializeObject<RootObject>(json);        
       }

json字符串会按预期方式获取整个文件,但不会填充特定值(数据)-至少我无法访问它。 DeserializeObject行之后的data为null。

我需要更具体地参考它吗?它是该json文件中许多值之一。

1 个答案:

答案 0 :(得分:2)

您的json数据比Connection高一层,因此您看不到它。

您需要一些包装器类。 var myData = JsonConvert.DeserializeObject<MyData>(stringValue);

public class MyData{
  public ConnectionClass Connection {get;set;}
}

public ConnectionClass{
  [JsonProperty("data")] // to keep code styling consistent
  public string Data {get;set;}
}