Blazor Rest Api 调用使用 httpClient.GetJsonAsync 错误

Blazor Rest Api call using httpClient.GetJsonAsync Errors

我正在尝试使用以下调用从 Blazor 服务器应用程序调用 Rest API 以获取项目列表。 API return 正确但无法映射到项目对象,因为项目的 JSON 嵌套在结果 属性.

这是我正在打的电话

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 函数映射到项目列表。我见过的所有例子都只有 return 没有响应消息的对象数组。

这是我在通话中收到的错误。 API 调用的路由是正确的,并且已经过测试。

JsonException: The JSON value could not be converted to Web.Data.Project[]. Path: $ | LineNumber: 0 | BytePositionInLine: 1.

快速简便的出路是

class Response
{
   public string  Message { get; set; }
   public bool  IsError { get; set; }
   public Project[] Result { get; set; }
}  

这样您也可以查看 IsError 和 Message。