'd'ルート要素内にラップされたJSON結果を返すWCFサービスを使用しています。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);
またはそのようなもの...