我以JSON格式接收播放器列表API,我想在
PlayerListViewModel
中使用它,但是我不知道如何将其划分为播放器类。
public partial class PlayerListViewModel : ObservableObject
{
public PlayerListViewModel(){
PlayerListItems = new ObservableCollection<Player>();
}
[ObservableProperty]
ObservableCollection<Player> playerListItems;
}
[RelayCommand]
async Task getPlayersAPI()
{
var response = await _httpClient.GetAsync(_url);
var responseString = await response.Content.ReadAsStringAsync();
playerListItems = JsonSerializer.Deserialize<Player>(responseString);
//playerListItems = JsonSerializer.Deserialize<List<Player>>(responseString);
}
玩家class
public class Player
{
public int Id { get; set; }
public required string fullName { get; set; }
public required string imageSrc { get; set; }
public required string countryFlag { get; set; }
}
data收到了示例
[
{
"Id": 577,
"fullName": "Bob Smith",
"imageSrc": "ProfileImage.webp",
"countryFlag": "us.svg"
},
{
"Id": 744,
"fullName": "George Kingford",
"imageSrc": "ProfileImage.webp",
"countryFlag": "ca.svg"
}
]
我如何填充playerListItems,以便我可以将其绑定到我的XAML表单。我遇到的具体错误超过了jsonserializer.deserialize
Cannot implicitly convert type '...Player' to 'System.Collections.ObjectModel.ObservableCollection...<Player>'
如果您的问题是您不知道如何填充
您可以尝试以下方法:
public partial class PlayerListViewModel : ObservableObject
{
private readonly HttpClient _httpClient;
private readonly string _url = "https://api.example.com/players"; // Replace with your API URL
public PlayerListViewModel()
{
_httpClient = new HttpClient();
PlayerListItems = new ObservableCollection<Player>();
}
[ObservableProperty]
private ObservableCollection<Player> playerListItems;
[RelayCommand]
private async Task GetPlayersAPI()
{
var response = await _httpClient.GetAsync(_url);
response.EnsureSuccessStatusCode();
var responseString = await response.Content.ReadAsStringAsync();
var players = JsonSerializer.Deserialize<List<Player>>(responseString);
PlayerListItems.Clear();
foreach (var player in players)
{
PlayerListItems.Add(player);
}
}
}