С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1339 / 919 / 264
Регистрация: 08.08.2014
Сообщений: 2,765

System.Text.Json.JsonSerializer.Serializ­e: не сериализовать унаследованные свойства

11.02.2022, 10:49. Показов 525. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс [1], который содержит какие-то свои свойства и наследуется от другого класса [2].
Доступа к коду наследуемого [2] класса нет, т.е. в нём не получится расставить атрибуты 'JsonIgnore'.

Можно ли как-то через настройки/параметры JsonSerializer сериализовать экземпляр [1] без сериализации свойств, унаследованных от [2]?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.02.2022, 10:49
Ответы с готовыми решениями:

Что делать: нет метода Serialize в JsonSerializer
Вызывает ошибку что в Serialize, что в Deserialize. Подскажите как исправить

Не могу подключить using System.Text.Json
Всем утро доброе. не могу подключить using System.Text.Json может у кого-то были такие же проблемы. "не существует в...

Сериализация в JSON. JsonSerializer
Здравсвуйте, можете подсказать у меня есть такой код Где я получаю с помощью отражения произвольный класс и еще нужные если класс...

6
Эксперт .NET
 Аватар для Usaga
14112 / 9329 / 1350
Регистрация: 21.01.2016
Сообщений: 35,046
11.02.2022, 10:57
kotelok, можно. Просто создаёте другой класс, с нужным набором свойств. Специально для сериализации и заполняете его данными из своего "неудобного" класса.
0
 Аватар для esperanto_qun
1124 / 656 / 393
Регистрация: 28.01.2021
Сообщений: 1,336
11.02.2022, 10:58
kotelok, Если значение свойства базового класса null, его можно проигнорировать - задайте для параметра DefaultIgnoreCondition значение WhenWritingNull.

Если не null, попробуйте посмотреть на этом сайте, очень много вариантов гнорирования:

https://docs.microsoft.com/en-... dotnet-6-0
1
1339 / 919 / 264
Регистрация: 08.08.2014
Сообщений: 2,765
11.02.2022, 11:00  [ТС]
Usaga
Да, это очевидно, но это вообще не вариант, т.к. это породит дублирование всех таких классов, а их много.

Добавлено через 27 секунд
esperanto_qun,
Не, они не null, там пустые коллекции.
0
Эксперт .NET
 Аватар для Usaga
14112 / 9329 / 1350
Регистрация: 21.01.2016
Сообщений: 35,046
11.02.2022, 11:01
kotelok, это вариант, и называется этот вариант DTO - Data Transfer Object. Очень распространённый вариант для таких случаев.

Цитата Сообщение от kotelok Посмотреть сообщение
это породит дублирование всех таких классов, а их много.
И что? У вас много классов для сериализации, значит будет много их DTO. Или у вас квота на количество классов в коде?)
0
1339 / 919 / 264
Регистрация: 08.08.2014
Сообщений: 2,765
11.02.2022, 11:04  [ТС]
Usaga,
Проблема чисто косметическая - во всех сериализованных JSON вылезает несколько пустых уснаследованных свойств. На функционале не сказывается, так что столь громоздкое решение в данном случае неуместно.
0
Эксперт .NET
 Аватар для Usaga
14112 / 9329 / 1350
Регистрация: 21.01.2016
Сообщений: 35,046
11.02.2022, 11:11
kotelok, оно не громоздко. Скопировать всю пачку моделей - минутное дело. Проецирование одного на другое сделать ещё быстрее - Automapper для таких случаев и создавался. Но если на функционале не сказывается, то и париться этим смысла тоже не имеет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.02.2022, 11:11
Помогаю со студенческими работами здесь

Serialize json
Всем привет,возникла проблема при парсинге json public class SmoList { public List<Category> Category{get;set;} ...

Newtonsoft Json.NET Подскажите как сериализовать private переменные
Всем здравствовать! У меня есть структура public struct Question { private string questionText; private int...

Сериализовать данные в JSON получилось, десериализовать ответ сервера - нет
Привет, писал программу и появилась потребность в "общении" с PHP скриптом. Скрипт уже был готов и использовал JSON. Сериализовать данные в...

System.Text.Json || AllowTrailingCommas не ставит запятые после объекта JSON
Добрый день! Есть функция которая сериализует объект класса в JSON строку. Параметром AllowTrailingCommas=true - отвечает за добавление...

Как с помошью System.Text.Json пройтись по всему Json дереву и удалить пустых детей?
Нужно сделать универсальный метод удаления пустых Json фрагментов в переданном Json. К примеру, свойства с пустым массивом, строкой или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru