You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#使用HttpClient反序列化JSON响应:如何筛选指定键值

问题:无法从TMDB API的JSON中获取指定国家的分级信息

你当前的代码无法获取到目标数据,核心问题是没有正确匹配JSON的嵌套层级结构。

错误分析

API返回的JSON结构中:

  • iso_3166_1 是 results 数组中每个对象的字段,而非根对象字段
  • certification 又嵌套在每个国家对象的 release_dates 数组中

你直接从根对象dynamicObject读取certification和iso_3166_1,这两个字段根本不存在于根层级,自然返回null。

修正后的代码

public static async Task getHttpApi()
{
    try
    {
        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri("https://api.themoviedb.org/3/movie/54597/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            HttpResponseMessage response = await client.GetAsync("release_dates?api_key=key");

            if (response.IsSuccessStatusCode)
            {
                using (HttpContent content = response.Content)
                {
                    string result = await content.ReadAsStringAsync();
                    var dynamicObject = JsonConvert.DeserializeObject<dynamic>(result)!;
                    
                    // 遍历results数组,找到US对应的项
                    foreach (var countryItem in dynamicObject.results)
                    {
                        if (countryItem.iso_3166_1 == "US")
                        {
                            // 从release_dates数组中取第一个元素的certification
                            var rating = countryItem.release_dates[0].certification;
                            Console.WriteLine(rating);
                            break; // 找到后退出循环
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("Error");
            }
        }
    }
    catch (Exception err)
    {
        throw err;
    }
}

代码说明

  1. 先访问根对象下的results数组,这是所有国家数据的容器
  2. 遍历数组中的每个国家对象,匹配iso_3166_1为"US"的项
  3. 从匹配到的国家对象中,取出release_dates数组的第一个元素(如果有多个分级记录,可根据type字段筛选),读取其certification值

内容的提问来源于stack exchange,提问作者ronniej962

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:39:55