dra*_*vic 5 c# json-deserialization azure-ad-graph-api
这是我从 Web 服务获得的 JSON 响应:
{
"odata.metadata": "https://graph.windows.net/00c6cd14-eaee-4d02-9807-59bcd4f98847/$metadata#domainDnsRecords",
"value": [{
"odata.type": "Microsoft.DirectoryServices.DomainDnsTxtRecord",
"dnsRecordId": "aceff52c-06a5-447f-ac5f-256ad243cc5c",
"isOptional": false,
"label": "aro3652698.applabdnstest1.com",
"recordType": "Txt",
"supportedService": "Email",
"ttl": 3600,
"text": "MS=ms14815229"
},
{
"odata.type": "Microsoft.DirectoryServices.DomainDnsMxRecord",
"dnsRecordId": "5fbde38c-0865-497f-82b1-126f596bcee9",
"isOptional": false,
"label": "aro3652698.applabdnstest1.com",
"recordType": "Mx",
"supportedService": "Email",
"ttl": 3600,
"mailExchange": "ms14815229.msv1.invalid",
"preference": 32767
}]
}
Run Code Online (Sandbox Code Playgroud)
“value”标记下数组中的元素具有不同的派生类型。
有DomainDnsRecord抽象基类,从基类继承的类是DomainDnsTxtRecord和DomainDnsMxRecord。
在给定的 JSON 数组中(但不总是!),第一个元素是 of DomainDnsTxtRecord,第二个元素是DomainDnsMxRecord类型。
包含有关给定元素是什么类型的信息的字段是:“recordType”。
将此 JSON 数组反序列化为基类列表的最简单、最方便的方法是什么,例如List<DomainDnsRecord>(例如(使用 Newtonsoft))?