我正在尝试使用以下调用从Blazor Server Application调用Rest API,以获取项目列表。API正确返回,但无法映射到Project对象,因为项目的JSON嵌套在results属性下。
这就是我要打的电话
var projects = await httpClient.GetJsonAsync<Project[]>("projects");API调用的响应如下所示。
{
"message": "GET Request successful.",
"isError": false,
"result": [
{
"projectCode": "PRJ-1996",
"businessAssociateID": "BA000000000002",
"contractStartDate": "11/19/2020 8:37:17 AM",
"contractEndDate": "11/19/2020 8:37:17 AM",
"contractStatus": "Active",
"createdBy": "system",
"createdDate": "2020-11-19T08:37:17.37",
"active": true
},
{
"projectCode": "PRJ-1997",
"businessAssociateID": "BA000000000002",
"contractStartDate": "11/19/2020 8:37:17 AM",
"contractEndDate": "11/19/2020 8:37:17 AM",
"contractStatus": "Active",
"createdBy": "system",
"createdDate": "2020-11-19T08:37:17.37",
"active": true
},
{
"projectCode": "PRJ-1998",
"businessAssociateID": "BA000000000002",
"contractStartDate": "11/19/2020 8:37:17 AM",
"contractEndDate": "11/19/2020 8:37:17 AM",
"contractStatus": "Active",
"createdBy": "system",
"createdDate": "2020-11-19T08:37:17.37",
"active": true
},
{
]
}如何使用GetJsonAsync函数映射到项目列表。我看到的所有示例都只返回对象数组,而没有返回响应消息。
这是我在调用时收到的错误。到API调用的路由是正确的,并且已经测试过了。
JsonException: The JSON value could not be converted to Web.Data.Project[]. Path: $ | LineNumber: 0 | BytePositionInLine: 1.发布于 2020-12-16 14:42:43
最快最简单的解决办法是
class Response
{
public string Message { get; set; }
public bool IsError { get; set; }
public Project[] Result { get; set; }
} 这也让你看到了IsError和Message。
https://stackoverflow.com/questions/65318185
复制相似问题