Изменения документа Newtonsoft. Json

Редактировал(а) Alexandr Fokin 2024/04/20 22:16

От версии 7.9
отредактировано Alexandr Fokin
на 2021/12/28 13:14
Изменить комментарий: К данной версии нет комментариев
К версии 7.13
отредактировано Alexandr Fokin
на 2022/07/22 04:11
Изменить комментарий: Удаленный объект

Сводка

Подробности

Свойства страницы
Родительский документ
... ... @@ -1,1 +1,1 @@
1 -Разработка.NET.Библиотеки.Документы.Сериализация.WebHome
1 +Разработка.NET.Библиотеки.Документы.Сериализация.Json.WebHome
XWiki.XWikiComments[0]
Автор
... ... @@ -1,1 +1,0 @@
1 -XWiki.cccc1808
Комментарий
... ... @@ -1,7 +1,0 @@
1 -Возможна реализация собственной логики сериализации/десериализации для типа T и использование ее на уровне классов сущностей в виде атрибутов над свойством.
2 -(Например для Dictionary)
3 -
4 -Необходимо реализовать интерфейс JsonConverter или JsonConverter<T>
5 -И либо использовать атрибут [JsonConverter(typeof(ConverterImplementation))]
6 -либо задать JsonConverter в свойствах serializer.Converters.Add(new ConverterImplementation())
7 -Если свойства CanRead/CanWrite задать false, то будет использоваться реализация по умолчанию
Дата
... ... @@ -1,1 +1,0 @@
1 -2020-02-13 13:15:26.153
XWiki.XWikiComments[1]
Комментарий
... ... @@ -1,4 +1,4 @@
1 -Сереализатор не может самостоятельно десереализовать абстрактный тип т.к. не знает какую реализацию стоит использовать. Возможное решение:
1 +Сериализатор не может самостоятельно десиреализовать абстрактный тип т.к. не знает какую реализацию стоит использовать. Возможное решение:
2 2  1) Поместить исходную json строку в context объекта сериализатора. (Тем самым мы получим возможность обратиться к нему из JsonConverter)
3 -2) Создать реализацию JsonConverter, которая будет извлекать json строку из context и выполнять анализ, на основе которого можно было бы разрешить тип абстрактного класса. (используя либо анализ строки, либо анализ JObject, либо десереализацию части объекта)
3 +2) Создать реализацию JsonConverter, которая будет извлекать json строку из context и выполнять анализ, на основе которого можно было бы разрешить тип абстрактного класса. (используя либо анализ строки, либо анализ JObject, либо десиреализацию части объекта)
4 4  3) Навесить данный атрибут над свойством с абстрактным типом класса.