Как назначить одно и то же имя свойства json, одно из которых имеет значение, а другое-null?
В ответе json свойство "data" используется в виде списка, а в других местах в Json значение равно null.. Как включить оба сценария здесь, когда я десериализую и сериализую json.. без запуска в исключение элемент с именем "данные" уже существует. Используйте атрибут JsonPropertyAttribute для указания другого имени
//Вот Json-файл
{ "adRoots": null, "allowedTagTypes": [ 0, 1, 4 ], "canEdit": true, "filterConfigData": { "config": [{ "extraData": null, "id": "Endpoints.ID.SearchInProgress", "title": "Search in Progress", "type": 5 }, { "data": null, "extraData": null, "id": "Endpoints.ID.Policies", "source": { "definition": "dbo", "displayColumn": "Name", "keyColumn": "Id", "name": "Policies", "type": 1 }, "title": "Policies", "type": 3 }, { "extraData": null, "id": "Endpoints.ID.MACs", "title": "MAC Addresses", "type": 1 }, { "data": [{ "name": "Endpoint Closed", "value": 11 }, { "name": "Endpoint Completed", "value": 15 }, { "name": "Endpoint Opened", "value": 10 } ], "extraData": null, "id": "Endpoints.ID.ClientActivityState", "source": { "definition": "State", "displayColumn": "Name", "keyColumn": "Id", "name": "ClientActivityState", "type": 2 }, "title": "Client Activity State", "type": 3 }, { "data": [{ "name": "System Alarm", "value": 3 }, { "name": "System Audit", "value": 2 } ], "extraData": null, "id": "Endpoints.ID.AceType", "source": { "definition": "AceType", "displayColumn": "Name", "keyColumn": "Id", "name": "AceType", "type": 2 }, "title": "ACL: ACE Type", "type": 3 }, { "extraData": null, "id": "Endpoints.ID.AceWho", "title": "ACL: Trustee", "type": 1 }, { "data": [{ "name": "Append Data", "value": 4 }, { "name": "Delete", "value": 65536 }, { "name": "Execute", "value": 32 } ], "extraData": null, "id": "Endpoints.ID.AceRights", "source": { "definition": "AceRights", "displayColumn": "Name", "editor": "ViewModel", "keyColumn": "Id", "name": "AceRights", "type": 2 }, "title": "ACL: Authorization", "type": 3 }, { "extraData": null, "id": "Endpoints.ID.FilterTagName", "title": "Tag Name", "type": 1 }, { "data": null, "extraData": null, "id": "Endpoints.ID.FilterTags", "source": { "definition": "dbo", "displayColumn": "Name", "keyColumn": "Id", "name": "Tags", "type": 1 }, "title": "Tags", "type": 3 }, { "extraData": null, "id": "Endpoints.Name.EndpointName", "title": "Endpoint Name", "type": 1 }, { "data": null, "extraData": null, "id": "Endpoints.Version.Version", "title": "Endpoint Version", "type": 1 }, { "extraData": null, "id": "Endpoints.Platform.Platform", "title": "Endpoint Platform", "type": 1 }, { "data": [{ "name": "Desktop", "value": 1 }, { "name": "Server", "value": 2 }, { "name": "Unknown", "value": 0 } ], "extraData": null, "id": "ELPlatformType", "source": { "displayColumn": "Name", "keyColumn": "Id", "name": "PlatformType", "type": 2 }, "title": "Platform Type", "type": 3 }, { "extraData": null, "id": "Endpoints.LastPoll.LastPoll", "title": "Last Poll Time", "type": 2 } ], "pagedListItems": null }, "forests": null, "item": { "disallowed": false, "editPermissions": 0, "endpointsCount": 0, "filter": null, "id": 404, "ldapPaths": null, "name": "tag", "query": null, "type": 0 } }
Что я уже пробовал:
[JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)] public List<Datum> Data { get; set; } [JsonProperty("data", NullValueHandling = NullValueHandling.Include)] private List<Datum> Data2 { set { Data = value; } }
Richard MacCutchan
Вам нужно объявить некоторый метод, который обрабатывает объекты "данные" и проверяет наличие нулевых значений.