【发布时间】:2021-01-08 14:20:22
【问题描述】:
我有一个 HTTPclient,我正在向服务器发送请求。 来自服务器的响应是 JSON。在这个 Json 中也是一个数组。 我想在控制台中显示来自 JSON 的信息。 我从 JSON 中获取所有信息,但没有在控制台中显示数组。
JSON 看起来像这样:
{
"Name1": "Karl",
"Name2": "Peter",
"Name3": "Wilhelm",
"PreNames": {
"PreName": "Werner",
"PreName2": "Josef"
}
}
所以现在我的代码到目前为止:
public class PreNames //for Array
{
public string PreName { get; set; }
public string PreName2{ get; set; }
}
public class Names//for JSON
{
public string Name1{ get; set; }
public string Name2{ get; set; }
public string Name3{ get; set; }
}
还有我的主要:
if (Response().IsSuccessStatusCode)
{
var namesJ= Response().Content.ReadAsAsync<IEnumerable<Names>>().Result;
var preNamesJ= await Response().Content.ReadAsAsync<List<PreNames>>();
foreach (var a in namesJ)
{
Console.WriteLine("Name1: {0}", a.Name1);
foreach(var b in preNamesJ)
{
Console.WriteLine("{0}", b.PreName);
}
}
所以在控制台中显示的是所有名称,但不是 PreNames,所以我无法从 JSON 中的数组中获取 PreNames...
我希望有人可以帮助我:)
【问题讨论】:
-
添加正确的 JSON 这似乎无效
-
我是怎么做到的? ://
-
我是你的主异步?如果没有,您可能需要删除 await 关键字并在行尾添加一个 .Result() 。如果是,则应删除 .Result(),并在 "=" 右侧添加 await 关键字
-
JSON 的 Method 是正常的,但是数组的 Method 是 Async。也没有工作
-
关于异步的评论,.Result() 看起来是正确的 json,如果这正是你返回的内容是无效的,它应该是这样的: { "Name1": "Karl", "Name2": "Peter", "Name3": "Wilhelm", "PreNames": [ { "PreName": "Werner" }, { "PreName2": "Josef" } ] } 你不能没有一个 json 对象数组将键/值对放入 {...}
标签: c# arrays json rest httpclient