我正在使用 WCF 服务,该服务返回包装在“d”根元素中的 JSON 结果。JSON 响应如下所示:
{"d":[
{
"__type":"DiskSpaceInfo:#Diagnostics.Common",
"AvailableSpace":38076567552,
"Drive":"C:\\",
"TotalSpace":134789197824
},
{
"__type":"DiskSpaceInfo:#Diagnostics.Common",
"AvailableSpace":166942183424,
"Drive":"D:\\",
"TotalSpace":185149157376
}
]}
我不想使用动态类型,我有我想在反序列化时使用的类 Diagnostics.Common.DiskSpaceInfo。
我正在使用 Json.NET (Netwonsoft JSON)。
问题是如何告诉它忽略根元素(那个'd'元素)并解析里面的内容。
到目前为止,我最好的解决方案是使用匿名类型:
DiskSpaceInfo[] result = JsonConvert.DeserializeAnonymousType(json, new
{
d = new DiskSpaceInfo[0]
}).d;
这实际上有效,但我不太喜欢它。还有其他方法吗?我想要的是这样的:
DiskSpaceInfo[] result = JsonConvert.Deserialize(json, skipRoot: true);
或类似的东西...