我目前有一个使用 Avalonia C# 发出的 API 请求,我设法返回整个 JSON 作为结果,但无法检索 foreach 中的每个元素。 这是当前代码:
// Get servers infos
private async Task GetServersInfos()
{
using (var httpClient = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("GET"), "http://example.com/api"))
{
var response = await httpClient.SendAsync(request);
if (response.IsSuccessStatusCode)
{
string jsonObject = JsonSerializer.Serialize(response.Content);
var results = await response.Content.ReadAsStringAsync();
foreach (var result in results)
{
TestText.Text = result["name"];
}
}
}
}
}
JSON 结果:
{
"1": {
"name": "Example 1",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit...",
},
"2": {
"name": "Example 2",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit...",
}
}
但是我有以下错误:无法使用 [] 将索引应用于“char”类型的表达式。
ReadAsStringAsync
返回一个简单的字符串,而不是对象列表。
这就是为什么你不能迭代它。
您可以为您的内容创建一个类,并让序列化器创建您的类的实例列表,然后您可以在 foreach 中对其进行迭代。