如何让用户在 ASP.NET MVC 5 应用程序中使用 TMDB API (The Movie Db) 搜索电影并返回 JSON 结果。
在 VB 外部使用我的个人 api key 并返回包含字符串“mission”的所有电影的 json 结果的工作示例:
http://api.themoviedb.org/3/search/movie?api_key=841c..&query=mission
文档 ( http://docs.themoviedb.apiary.io/#reference/search/searchmovie ) 建议对 C# 使用以下代码:
var baseAddress = new Uri("http://api.themoviedb.org/3/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
using(var response = await httpClient.GetAsync("search/movie"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
我将代码粘贴到异步操作 MovieSearch() 中,但不知道现在该做什么。
最佳答案
您必须将他们作为 responseData
返回给您的 JSON 字符串反序列化为 c# 类型,例如 Movie
。对于反序列化,您可以使用像 JSON.NET 这样的库然后这样写:
class Movie
{
public string Name{ get; set;}
public decimal Rating{ get; set;}
}
string output = "{ "Name": "The Matrix", "Rating": "4.0"}"
Movie deserializedMovie = JsonConvert.DeserializeObject<Movie>(responseData);
检查它们实际返回的内容,因为响应不能包含单个 Movie 对象,但可以包含一个列表,那么您必须像这样编写代码:
List<Movie> movies= JsonConvert.DeserializeObject<List<Movie>>(responseData);
希望这有帮助:)
关于c# - ASP.NET MVC 5 从 TMDB API 获取 JSON 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30209292/