Можно ли десериализовать JSON в универсальный объект на C# и сделать имя свойства динамическим?C#

Место общения программистов C#
Ответить
Гость
 Можно ли десериализовать JSON в универсальный объект на C# и сделать имя свойства динамическим?

Сообщение Гость »

Обновлено: любой из двух комментариев на момент обновления или принятый ответ являются функциональными решениями, однако в применяемом масштабе они создают больше риска и сложности, чем они могли бы сэкономить. Поэтому я решил просто разместить множество классов в отдельном файле, где каждый ответ будет записан отдельно.
Я был бы рад использовать либо NewtonSoft, либо System.Text.Json. десериализаторы.
У меня будет много разных ответов, поступающих от API, и я бы предпочел не писать отдельные объекты ответа для каждого.
Например, каждый ответ содержит сообщение свойство и свойство кода состояния, то это фактические данные.
Итак, мне хотелось бы иметь

Код: Выделить всё

public class ApiResponse
{
public string StatusCode{ get; set; }
public string Message{ get; set; }
public ICollection Data { get; set; }
}
Проблема в том, что, хотя я могу правильно установить «T», я не могу использовать для него карту десериализации, поскольку она ожидает, что свойство будет «Пользователи» или «Покупки». и т. д., а не «данные».
Я знаю, что могу установить декоратор JsonProperty[], но проблема в том, что это не является динамическим с T.
Если есть технический способ, но он не проще, чем просто создание отдельных объектов ответа для каждого, я буду рад продолжать писать отдельные объекты; но было бы интересно найти лучшее решение, которого я не нашел, если оно существует.

Подробнее здесь: https://stackoverflow.com/questions/784 ... have-the-p
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»