Десериализовать Json в список <long>не удалось - PullRequest
0 голосов
/ 28 февраля 2020

В моем приложении ASP. Net Core 3.1 у меня есть следующая строка json:

   string body = "{\"idsModel\":{\"IdsToDraft\":[792,793,794]}}";

А вот мой POCO, я пытаюсь десериализовать эту строку в:

public class IdsModel
    {
        public List<long> IdsToDraft { get; set; }
    }

Вот мой код десериализации:

idsModel = Newtonsoft.Json.JsonConvert.DeserializeObject<IdsModel>(body);

В конце этого создается объект idsModel, но свойство IDsToDraft объекта равно нулю.

Я пробовал как Newtonsoft, так и. Net Core System.Text. Json сериализаторы.

Я пробовал разные комбинации корпусов в исходной строке.

Почему это? Почему свойство List не десериализовано?!?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020

Вам не хватает объекта root, который содержит idsModel:

public class RootClass
{
    public IdsModel IdsModel { get; set; }
}

public class IdsModel
{
    public List<long> IdsToDraft { get; set; }
}

// ...

var idsModel = Newtonsoft.Json.JsonConvert.DeserializeObject<RootClass>(body);
1 голос
/ 28 февраля 2020

Модель должна выглядеть как

public class IdsModel
{
    public List<long> IdsToDraft { get; set; }
}

public class RootObject
{
    public IdsModel idsModel { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...