Я использую службу WCF, которая возвращает результаты JSON, завернутые внутри корневого элемента d. Ответ 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);
или что-то в этом роде...