Web API调用返回具有空字段的json数据

时间:2018-10-16 20:29:24

标签: json flurl

我正在使用Flurl(下面的函数)获取一些json数据。我的问题是,这将返回预期的字段,而不是实际数据:

screenshot

json位于:https://jsonplaceholder.typicode.com/users

完全相同的功能在不使用Microsoft.AspNetCore.Mvc的单独的独立测试应用程序中也可以正常工作。

有什么想法为什么会返回字段而不返回数据?谢谢。

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)
            {
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

GetJsonListAsync(不带通用参数)返回Task<IList<dynamic>>,因此最简单的解决方法是使用控制器中的相同返回类型,而不是Task<dynamic>

如果您希望它更加健壮和类型安全,我将完全跳过dynamic并创建一个User类,然后使用GetJsonListAsync<User>()并返回{{1 }}在您的控制器中。我看到其中涉及嵌套对象,因此您实际上需要几个类来表示整个结构。 json2csharp是一个很好的工具。只需粘贴单个用户的JSON表示形式(而不是整个列表),它将为您生成所有内容。