Web api 调用 returns json 具有空字段的数据
Web api call returns json data with empty fields
我正在使用 Flurl(下面的函数)获取一些 json 数据。我的问题是这个 return 是预期的字段而不是实际数据:
json 位于:https://jsonplaceholder.typicode.com/users
完全相同的功能在未使用 Microsoft.AspNetCore.Mvc 的单独独立测试应用程序中运行良好。
知道为什么它会 return 字段而不是数据吗?谢谢。
using System;
using Test.API.Constants;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using Flurl.Http;
namespace Test.API.Controllers
{
public class TestController
{
[Route(ApiControllerRoutes.Test.test)]
[HttpGet]
public async Task<dynamic> GetAsync()
{
try
{
string url = "https://jsonplaceholder.typicode.com/users";
return await url.GetJsonListAsync();
}
catch (Exception e)
{
}
}
}
}
GetJsonListAsync
(没有通用参数)returns Task<IList<dynamic>>
,所以最简单的解决方法是使用控制器中相同的 return 类型,而不是 Task<dynamic>
.
如果你想让它更健壮和类型安全,我会完全跳过 dynamic
s 并创建一个 User
class,然后使用 GetJsonListAsync<User>()
和 return Task<IList<User>>
在你的控制器中。我看到涉及嵌套对象,因此您实际上需要几个 classes 来表示整个结构。 json2csharp 是一个很好的辅助工具。只需粘贴 JSON 表示 单个 用户(不是整个列表),它就会为您生成所有内容。
我正在使用 Flurl(下面的函数)获取一些 json 数据。我的问题是这个 return 是预期的字段而不是实际数据:
json 位于:https://jsonplaceholder.typicode.com/users
完全相同的功能在未使用 Microsoft.AspNetCore.Mvc 的单独独立测试应用程序中运行良好。
知道为什么它会 return 字段而不是数据吗?谢谢。
using System;
using Test.API.Constants;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using Flurl.Http;
namespace Test.API.Controllers
{
public class TestController
{
[Route(ApiControllerRoutes.Test.test)]
[HttpGet]
public async Task<dynamic> GetAsync()
{
try
{
string url = "https://jsonplaceholder.typicode.com/users";
return await url.GetJsonListAsync();
}
catch (Exception e)
{
}
}
}
}
GetJsonListAsync
(没有通用参数)returns Task<IList<dynamic>>
,所以最简单的解决方法是使用控制器中相同的 return 类型,而不是 Task<dynamic>
.
如果你想让它更健壮和类型安全,我会完全跳过 dynamic
s 并创建一个 User
class,然后使用 GetJsonListAsync<User>()
和 return Task<IList<User>>
在你的控制器中。我看到涉及嵌套对象,因此您实际上需要几个 classes 来表示整个结构。 json2csharp 是一个很好的辅助工具。只需粘贴 JSON 表示 单个 用户(不是整个列表),它就会为您生成所有内容。