Flurl: GetJsonListAsync возвращает список динамических объектов - PullRequest
0 голосов
/ 11 декабря 2019

Я новичок в .NET Core и пытаюсь разобраться;практиковать, как использовать API с Flurl. С этой конечной точкой https://jsonplaceholder.typicode.com/posts, которая возвращает массив JSON, я попробовал следующий код, но список состоял из динамики, которую я не смог преобразовать. Кто-нибудь может посоветовать, как преобразовать динамику в правильный объект post?

public class PostsApiClient
{
    public async Task<IEnumerable<PostInput>> GetPosts()
    {
        var response = await "https://jsonplaceholder.typicode.com/posts".GetJsonListAsync();
        IEnumerable<Post> listOfPosts = response.Select(post => new Post
        {
            Title = post.Title,
            Body = post.Body
        });
        return listOfPosts;
    }

public class Post
    {
        public int UserId { get; set; }
        public int Id { get; set; }
        public string Title { get; set; }
        public string Body { get; set; }
    }
}

1 Ответ

0 голосов
/ 11 декабря 2019

GetJsonListAsync был специально разработан для возврата списка динамики. Не существует типизированного (универсального) эквивалента специально для списков, но все, что вам нужно сделать, это предоставить тип коллекции для GetJsonAsync. В вашем случае это должно работать:

public async Task<IEnumerable<Post>> GetPosts()
{
    return await url.GetJsonAsync<Post[]>();
}
...