|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
|
|||||||||||
.NET 4.x Не определен конструктор без параметров. при десериализации json06.07.2019, 12:27. Показов 4198. Ответов 15
Метки нет (Все метки)
Здравствуйте.
Вот код Десерелизации.
Вот код класса:
0
|
|||||||||||
| 06.07.2019, 12:27 | |
|
Ответы с готовыми решениями:
15
Ошибка формата при десериализации json При десериализации объекта типа DateTime с формата json происходит смещение на один день назад Определить конструктор без параметров, конструктор с одним параметром, конструктор с двумя параметрами, деструктор |
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 06.07.2019, 13:51 | |
|
Класс непубличный
0
|
|
|
3 / 3 / 0
Регистрация: 17.05.2016
Сообщений: 20
|
||||||
| 07.07.2019, 03:39 | ||||||
|
у тебя же в ошибке явно написано, что в классе отсутствует конструктор без параметров.
0
|
||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
|
|||||||
| 09.07.2019, 15:07 [ТС] | |||||||
|
Но это нелогично. Просто не пойцму логики зачем я должен создавать конструктор без параметров если я использовать буду конструктор с параметрами. И ладно если взять AL7_Class_Programs. Я все равно туда передаю -1. По факту это можно и в конструкторе прописать. Но вот с другими классами
0
|
|||||||
|
1338 / 918 / 264
Регистрация: 08.08.2014
Сообщений: 2,759
|
||
| 09.07.2019, 15:12 | ||
|
Если в классе не объявлено ни одного конструктора, то автоматически (при компиляции) создаётся конструктор без параметров, который ничего не делает. Если же программист явно указал, что при создании объекта класса требуются определённые входные данные и явно НЕ задал конструктор без параметров, значит у него были на то причины, например, он хочет гарантировать, что объект всегда будет корректно инициализирован определённым состоянием через переданные параметры и не будет никакой возможности создать его в обход этого. * а десериализатор JSON не может использовать конструктор с параметрами, т.к. он попросту не знает, что именно туда нужно передавать.
0
|
||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
|
||
| 09.07.2019, 15:17 [ТС] | ||
|
0
|
||
|
1338 / 918 / 264
Регистрация: 08.08.2014
Сообщений: 2,759
|
||
| 09.07.2019, 15:22 | ||
|
0
|
||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
|
|
| 09.07.2019, 15:44 [ТС] | |
|
0
|
|
|
1338 / 918 / 264
Регистрация: 08.08.2014
Сообщений: 2,759
|
|||||||||||
| 09.07.2019, 15:47 | |||||||||||
|
Alexandr_7
Убрать оба конструктора. Компилятор создат конструктор по умолчанию без параметров, который будет использоваться десериализатором JSON. А для явного создания объектов из кода использовать быструю инициализацию свойств, которая, имхо, куда более читаема и понятна, чем вызов конструктора с неименованными параметра. При этом VS умеет подсказывать, какие свойства уже были инициализированы, а какие нет: через конструктор
без конструктора
1
|
|||||||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
|
||||||||||||
| 09.07.2019, 16:54 [ТС] | ||||||||||||
|
А да точно. Забыл об этом. Точнее не то что забыл просто использовать в голову не пришло. Спасибо.
Добавлено через 55 минут через конструктор
без конструктора
Лично для меня оба читаемые варианты. Просто во 2 варианте количество коду больше. Добавлено через 3 минуты Хотя 2 вариант удобнее. Но правдо мне теперь прийдется перелохмачивать уже все добавленное под новый вариант.
0
|
||||||||||||
|
1338 / 918 / 264
Регистрация: 08.08.2014
Сообщений: 2,759
|
|
| 09.07.2019, 17:40 | |
|
Alexandr_7
Ну тут уже на вкус и цвет. В первом варианте, при такой записи, все значения параметров выравнены по левому краю, что само по себе легче для восприятия (по крайней мере в данном случае). Во втором - сразу понятно, какой параметр за что отвечает, особенно когда смысл параметра сходу не очевиден из названия. С другой стороны - если вдруг у вас добавится ещё одно обязательное свойство, то после добавления его в конструктор вы сразу на этапе компиляции обнаружите все места, где его нужно дописать в конструктор, т.е. гарантированно нигде не забудете. В общем, тут нет однозначного варианта, от сиутации и личных предпочтений зависит.
0
|
|
|
3 / 3 / 0
Регистрация: 17.05.2016
Сообщений: 20
|
||||||
| 11.07.2019, 18:14 | ||||||
|
Alexandr_7, Так может тебе пересмотреть архитектуру классов?
Сущность что ты пытаешься сериализировать сделай моделью, не надо туда закладывать логику. Пусть она будет тупо содержать данные. А как эти данные обрабатывать, будут решать сервисы.
0
|
||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
|
||
| 12.07.2019, 11:57 [ТС] | ||
|
Мне эта структура для хранения данных. В данном случае хранить ссылки на часто используемые программы. Хочу сделать прогу которая будет хранить часто используемые прогораммы с возможностью их быстрой скачки. Чтобы не лезть каждый раз в интернет ну или если и лезть то чтобы.
0
|
||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
|
|||||||||||
| 12.07.2019, 12:30 | |||||||||||
|
Alexandr_7, по моему так еще более читабельно получается... А строк больше только из-за фигурных скобок...
А по хорошему данные нужно хранить не в коде, а во внешнем файле (json/xml), и тогда вообще количество строк будет сведено до минимума...
1
|
|||||||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,891
|
||||||||
| 12.07.2019, 13:20 [ТС] | ||||||||
|
При загрузке программы данные загржаются в классы. Если классы пустые после загрузке то добавляются стандартные данные. А грузить из Json только то что нужно то во 1 без понятия как. Во вторых это сложнее. В третьих а зачем? Сыкономить пару сотен байт оперативки то времени я потрачу больше чем от этого будет какаято польза. Я понимаю если бы это была графическая информация но это текстовая информации. Тем более очень мелкая текставая информация так что не требуется ее загружать только при выборе. К томмуже все программы (ссылки на программы) должны отображаться сразу в списке а значит их всяко разно нужно грузить сразу все. Добавлено через 1 минуту
0
|
||||||||
| 12.07.2019, 13:20 | |
|
Помогаю со студенческими работами здесь
16
При десериализации JSON из файла происходит ошибка Ошибка при десериализации json файла в list Spring REST, Hibernate. Сложности десериализации JSON при one-to-many
Конструктор без параметров Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|