微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Json 数据传输到 C# 列表

如何解决将 Json 数据传输到 C# 列表

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using pdrake.Models;

namespace pdrake.Controllers
{
    public class MovieApiController : Controller
    {
        private const string baseUrl = "https://api.themoviedb.org/3/discover/movie?api_key=my_key";
        public List<Movie> Movies { get; set; }
        public async Task<AcceptedResult> GetMovies()
        {
            using (var httpClient = new HttpClient())
            {
                httpClient.BaseAddress = new Uri(baseUrl);
                httpClient.DefaultRequestHeaders.Accept.Clear();
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            }
            Movies = JsonConvert.DeserializeObject<List<Movie>>(Json(baseUrl));
            return View(Movies);
        }
    }
}

我一整天都在努力弄清楚如何将 Json 从 baseUrl 传输到可以使用 foreach 循环遍历的列表 Movies。

解决方法

将您的 using 块更改为以下内容,

using (var httpClient = new HttpClient())
{
    var response = await httpClient.GetAsync(baseUrl);
    string data = await response.Content.ReadAsStringAsync();
    return View(JsonConvert.DeserializeObject<List<Movie>>(data));
}

这将调用 baseUrl 并从响应中接收文本/内容。获得数据后,您可以将其反序列化为 List<Movie> 对象并将其作为视图返回。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。