Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Пора на C++?
 Аватар для TrickyBestia
370 / 264 / 99
Регистрация: 10.04.2020
Сообщений: 1,275

Дамп объекта в JSON формате

19.11.2020, 16:36. Показов 708. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Форумчане, всем большой привет!
Использую Newtonsoft.Json.
Меня интересует как можно сериализовать объект вместе со всеми его не публичными полями и свойствами. При этом нужно чтобы код работал с любыми объектами, т.е. нельзя на поле/свойство класса навесить атрибут.
Возможность десериализации не нужна.
Заранее спасибо за советы!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2020, 16:36
Ответы с готовыми решениями:

Запись объекта в формате json
Здравствуйте форумчане. Возник вопрос: есть массив объектов класса Product. Я перебираю массив через foreach и на каждой итерации пишу...

Java, JSON и JSON Simple. Непонятка с созданием объекта JSON на сервере для отправки на фронт
Здравствуйте. Разрабатываю интернет-магазин на Java. Мне нужно на фронте получить список товаров из базы данных для отображения на...

Dictionary to json в формате name, value
Вечер добрый. Может кто нибудь подсказать как конвертировать словарь в такой вид: Если использовать стандартные средства он получается...

4
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
19.11.2020, 16:57
Плохой способ: через рефлекцию.
Хороший способ: замаппить в сериализуемый объект с публичными свойствами (DTO).
1
Пора на C++?
 Аватар для TrickyBestia
370 / 264 / 99
Регистрация: 10.04.2020
Сообщений: 1,275
19.11.2020, 17:03  [ТС]
I2um1, мне это нужно для логирования, так что создавать для каждого класса DTO - не вариант.
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
19.11.2020, 17:10
TrickyBestia, тогда только рефлексия, потому что это изначально плохой подход логирования.
Если так не нравится ручками писать DTO, можно использовать генераторы кода:
https://docs.microsoft.com/en-... ew=vs-2019
Или вовсе новомодный:
https://devblogs.microsoft.com... enerators/
1
Пора на C++?
 Аватар для TrickyBestia
370 / 264 / 99
Регистрация: 10.04.2020
Сообщений: 1,275
19.11.2020, 20:45  [ТС]
I2um1, спасибо, изначально задумывался о кодогенерации, но надеялся что получится сделать всё более "ленивым" способом.

Добавлено через 3 часа 29 минут
Сделал самым простым способом - без всяких Code generators и DTO:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public class DumpObjectSerializer : DefaultContractResolver
    {
        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            JsonProperty property = base.CreateProperty(member, memberSerialization);
            property.Readable = true;
            property.Writable = true;
            return property;
        }
        protected override List<MemberInfo> GetSerializableMembers(Type objectType)
        {
            List<MemberInfo> serializableMembers = new List<MemberInfo>();
            serializableMembers.AddRange(objectType.GetFields((BindingFlags)int.MaxValue));
            serializableMembers.AddRange(objectType.GetProperties((BindingFlags)int.MaxValue));
            return serializableMembers;
        }
    }
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2020, 20:45
Помогаю со студенческими работами здесь

Настройки в формате JSON
Написал простенький парсер для JSON, может кому будет полезен. Хотя на JSON это не сильно похоже, но способно упростить работу с...

Вывод бд в формате JSON
Всем доброго вечера как в формате JSON получить все базу данных. Идеально бы было если это все записать сюда &lt;?php include...

СМА Indesit WIN80 (CSI) 910060116*24535480206, Необходим дамп в формате S19
Доброго времени суток Коллеги! СМА Indesit WIN80 (CSI) 910060116*24535480206 нужен дам под USBDM в формате S19 или SW:02.00.10 (нет у...

Отправка данных в формате JSON
Как с сервера отправить данные клиенты в формате json? string reply = &quot;Привет&quot;; string serialized =...

Парсинг файла в формате json
Добрый день всем. Пишу программу и столкнулся с проблемой у меня имеется сторонний файл в формате json из которого мне нужно получить...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru