из API я получаю json примерно так:
66 результатов игрока с 31 атрибутом, содержащим отдельные значения или массив значений.
{"api":
{"results":66,
"players":
[{
"player_id":10,
"player_name":"Gustavo Ferrareis",
... (some 31 stats)
"shots":{
"total":13,
"on":2
},
...
},
"player_id":21,
...
}]
}
И я хотел узнать, есть ли способ десериализации коллекции игроков в словарь или лучше DataTable со всеми 31 атрибутами без пользовательского класса игрока или доступ к каждому атрибуту индивидуально ?
Пока я пытался доступ к списку игроков:
var data = JObject.Parse(json);
foreach (var field in data)
{
var data2 = JObject.Parse(field.Value.ToString());
foreach (var field2 in data2)
{
if (field2.Key.ToString() == "players")
{
dynamic array2 = JsonConvert.DeserializeObject(field2.Value.ToString());
foreach (var field3 in array2)
Console.WriteLine("Player_id: " + field3.player_id.ToString() + " - Player_name: " + field3.player_name.ToString());
}
}
}
, который возвращает
Player_id: 10 - Player_name: Gustavo Ferrareis
Player_id: 22 - Player_name: Getúlio
Player_id: 22 - Player_name: Getúlio
Я представляю что-то вроде:
Dictionary<string, object> dict = new Dictionary<string, object>();
foreach (var player in array2)
dict.Add(player.Key(), player.Value());
Ответ не может быть, что я должен сделать пользовательский класс игрока, а затем использовать его?
Открыть для любого совета. Спасибо.