我有一个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文件中许多值之一。
答案 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;}
}