【发布时间】:2020-11-25 04:17:27
【问题描述】:
我希望访问球茎龙 (https://pokeapi.co/) 的 PokeAPI 中的“front_default”精灵。
我有以下集合初始化器:
public class PokemonModel
{
public int Id { get; set; }
public string Name { get; set; }
public Dictionary<string, string> Sprites { get; set; }
}
我的 WPF MainWindow 的以下代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async Task LoadImage(int pokedexNumber = 1)
{
PokedexProcess pkdx = new PokedexProcess();
PokemonModel pkmn = await pkdx.LoadPokedex(pokedexNumber);
var uriSource = new Uri(Convert.ToString(pkmn.sprites["front_default"]), UriKind.Absolute);
pokemonImage.Source = new BitmapImage(uriSource);
}
private async void Window_Loaded(object sender, RoutedEventArgs e)
{
await LoadImage();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
}
}
public class PokedexProcess
{
public async Task<PokemonModel> LoadPokedex(int number)
{
var url = new Url($"https://pokeapi.co/api/v2/pokemon/{ number }");
PokemonModel pkmn = await url.GetJsonAsync<PokemonModel>();
return pkmn;
}
}
但是,当我尝试使用它访问精灵时,我收到以下错误消息:
Flurl.Http.FlurlParsingException: '响应无法反序列化为 JSON: GET https://pokeapi.co/api/v2/pokemon/1'
内部异常
JsonReaderException:解析值时遇到意外字符:{。路径“sprites.other”,第 1 行,位置 162133。
我能想到的唯一错误是试图以错误的方式访问它。
要访问特定的精灵,我需要访问https://pokeapi.co/api/v2/pokemon/1,然后访问 sprites->front_default->图像的 url
【问题讨论】:
标签: c# api dictionary flurl