десериализация с использованием json в .net (несколько типов) - PullRequest
0 голосов
/ 18 октября 2019

Я новичок в .net . Может быть, это основной вопрос. Я пробовал много способов, глядя на похожие вопросы в stackoverflow. Но пока не повезло. Фактическая проблема в том, что у меня есть строка ниже, и я хочу десериализовать с помощью jsonconvert.

{"Type1":[{"id":0,"x":1,"y":3,"frame":0,"speed":20},{"id":9,"x":1,"y":3,"frame":0,"speed":20}],"Type2":[]}

способ десериализации, как показано ниже

var temp = JsonConvert.DeserializeObject<RootCommands>(body);

Я использовал инструмент http://json2csharp.com/, чтобы классы генерировались из строки json.

public class Type1
{
    public int id { get; set; }
    public int x { get; set; }
    public int y { get; set; }
    public int frame { get; set; }
    public int speed { get; set; }
}

public class RootObject
{
    public List<Type1> Type1 { get; set; }
    public List<object> Type2 { get; set; }
}

Но все же я получаю следующее исключение, когда пытаюсь распечатать данные о скомпонованных объектах temp.Type1.Count

Inside exception Object reference not set to an instance of an object.

Жду вашего ответа

1 Ответ

0 голосов
/ 18 октября 2019

Я не знаю точно, как выглядит ваш объект "тело". Но я проверил это с этим кодом, и он, кажется, работает нормально:

string body = @"{ 'Type1':[{'id':0,'x':1,'y':3,'frame':0,'speed':20},{'id':9,'x':1,'y':3,'frame':0,'speed':20}],'Type2':[]}";
var x = JsonConvert.DeserializeObject<RootObject>(body);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...