У меня Json такой:
{
"Result": {
"Bruce": {
"City": "Gotham",
"Age": 43
},
"Clark": {
"City": "Metro",
"Age": 43
}
}
}
Когда я десериализую его, мне понадобится следующая структура классов
public class Clark
{
public string City { get; set; }
public int Age { get; set; }
}
public class Bruce
{
public string City { get; set; }
public int Age { get; set; }
}
public class Result
{
public Bruce Bruce { get; set; }
public Clark Clark { get; set; }
}
public class RootObject
{
public Result Result { get; set; }
}
Это означает, что мне нужно создать определенные классы, такие как Брюс, Кларк и т. д. Можно ли десериализовать этот Json, где вместо отдельных Брюса, Кларка и т. д. У меня есть только один класс Person, как этот
public class Person
{
public string Name { get; set; }
public string City { get; set; }
public int Age { get; set; }
}
public class Result
{
public List<Person> Persons { get; set; }
}
public class RootObject
{
public Result Result { get; set; }
}
так что JSON становится таким:
{
"Result": {
"Persons": [
{
"Name": "Bruce",
"City": "Gotham",
"Age": 43
},
{
"Name": "Clark",
"City": "Metro",
"Age": 43
}
]
}
}
в чем вопрос?
@cyboashu, если это то, что вы хотите, проверьте мой комментарий
@maccettura, Dictionary<string,Person> Result { get; set; } работал. Спасибо за ответ. Не могли бы вы добавить это в качестве ответа.
Отвечает ли это на ваш вопрос? Десериализация JSON .NET в сложный тип с ключом / именем объекта





Ваш Json описывает объект с единственным свойством Result, то есть Dictionary<string, Person>.
Итак, ваш класс (классы) просто должен выглядеть так:
public class Person
{
public string Name { get; set; }
public string City { get; set; }
public int Age { get; set; }
}
public class RootObject
{
public Dictionary<string, Person> Result { get; set; }
}
Resultдолжен бытьDictionary<string, Person>, это буквально все, что вам нужно сделать. Просто переберите значения словаря после сериализации