#c# #json #serialization
#c# #json #сериализация
Вопрос:
Я борюсь с Json, предоставляемым внешним участником :
{
"info": {
"compa": "123"
},
"employees": {
"key1": {
"name": "dog",
"friend": [ "cat" ]
},
"key2": {
"name": "fish",
"friend": [ "shark" ]
}
}
}
Я использую классы:
public class company
{
public info info { get; set; }
public employees employees { get; set; }
}
public class info
{
public string compa { get; set; }
}
public class employees
{
public List<Dictionary<string, employee>> employee { get; set; }
}
public class employee
{
public string name { get; set; }
public string friend { get; set; }
}
Когда я десериализую, мое свойство employee пусто в классе employees .
Любая помощь была бы очень признательна!
Ответ №1:
Есть несколько проблем с вашей схемой C #. Вы можете избавиться от employees
класса и заменить его на a Dictionary<string, employee>
. Обратите внимание, что это словарь, а не список словарей. Также обратите внимание, что employee.friend
это коллекция, а не строка.
Это работает:
class Program
{
static async Task Main(string[] args)
{
string json = await File.ReadAllTextAsync("json1.json");
var company = JsonSerializer.Deserialize<company>(json);
}
}
public class company
{
public info info { get; set; }
public Dictionary<string, employee> employees { get; set; }
}
public class info
{
public string compa { get; set; }
}
public class employee
{
public string name { get; set; }
public IEnumerable<string> friend { get; set; }
}