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

如何在C#中从API调用结果中获取指定字段值?

问题分析与解决方案

你的代码存在三个关键问题导致异常或逻辑错误:

  • 循环内仅定义了变量但未将结果添加到目标列表,最终返回空集合
  • 代码存在语法错误:string str = item["Name"].ToString() + ";" 末尾缺少分号
  • 未做空值校验,若JSON对象无Name字段,调用ToString()会触发空引用异常

修正后的基础实现

var a = JArray.Parse(data);
List<string> resultList = new List<string>();

foreach (var item in a)
{
    // 先校验字段是否存在且非空,避免空引用异常
    if (item["Name"] != null)
    {
        string name = item["Name"].ToString();
        resultList.Add(name);
    }
}

return resultList;

更简洁的LINQ实现

利用LINQ可以简化代码,同时保留空值校验:

var a = JArray.Parse(data);
List<string> resultList = a
    // 空传播运算符安全获取Name值,避免空引用
    .Select(item => item["Name"]?.ToString())
    // 过滤掉空或空字符串的无效项
    .Where(name => !string.IsNullOrEmpty(name))
    .ToList();

return resultList;

如果你的实际需求是生成分号分隔的名称字符串(而非列表),可以在得到列表后拼接:

string nameStr = string.Join(";", resultList);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:57:04