C# | Сериализация массива объектов в JSON
Нужно получить вот такую конструкцию:
"players": [
{
"player_id": "76561199099565074",
"availability": 0,
...
}
]
Не могу понять как правильно описать класс. Пробовал вот так:
public class Promocodes
{
...
public string[ Dictionary<string,PlayersClass>?] Players { get; set; }
}
public class PlayersClass
{
public int PlayerId { get; set; }
public int availability { get; set; }
}
public class Program
{
public static void Main()
{
var promocodes = new Promocodes
{
Players = new Dictionary<int, PlayersClass>
{
["PlaersId"] = new PlayersClass { PlayerId = 1 }
}
}
}
}
Понимаю что тут все не правильно, скилов не хватает.
С простыми массивам проблем нет, а вот такая конструкция не получается: [{"":""}]
.
Ответы (1 шт):
Автор решения: iikuzmychov
→ Ссылка
[{"":""}]
- это просто массив объектов.
Воспользуйтесь встроенным сериализатором и добавьте названия полям с помощью JsonPropertyName
:
public class Promocode
{
[JsonPropertyName("players")]
public Player[] Players { get; set; }
}
public class Player
{
[JsonPropertyName("player_id")]
public long PlayerId { get; set; }
[JsonPropertyName("availability")]
public int Availability { get; set; }
}
// пример объекта
var promocode = new Promocode
{
Players = [new Player { PlayerId = 76561199099565074, Availability = 0 }]
};
// сериализация
var json = JsonSerializer.Serialize(promocode);
Результат:
{
"players": [
{
"player_id": 76561199099565074,
"availability": 0
}
]
}