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

如何在C#中访问嵌套JSON的多组元素?

解决JSON解析遍历问题

你的代码里犯了一个关键错误:原JSON结构中存储合同数据的字段是company,但你在代码里用了assets来取值,这导致后续无法正确获取数据。下面是两种可以正确遍历提取所有目标数据的方法:

方法一:用JToken/JArray直接遍历

// 接收JSON数据
var responseString = await response.Content.ReadAsStringAsync();

// 解析为JArray(因为返回的是数组格式)
JArray rootArray = JArray.Parse(responseString);
// 获取第一个对象里的company数组
JArray contractList = (JArray)rootArray[0]["company"];

// 遍历所有合同项
foreach (JToken contractItem in contractList)
{
    // 获取contract_ID
    string contractId = contractItem["contract_ID"].ToString();
    // 获取内部company数组里的第一个公司对象
    JToken companyInfo = contractItem["company"][0];
    
    // 提取公司信息
    string companyName = companyInfo["company_name"].ToString();
    string companyLogo = companyInfo["company_logo"].ToString();
    string invested = companyInfo["invested"].ToString();
    
    // 输出或处理数据
    Debug.Log($"合同ID: {contractId}, 公司名称: {companyName}, Logo: {companyLogo}, 投资金额: {invested}");
}

方法二:用实体类反序列化(更易维护)

先定义对应JSON结构的实体类:

public class RootObject
{
    public string ID { get; set; }
    public List<ContractItem> company { get; set; }
}

public class ContractItem
{
    public string contract_ID { get; set; }
    public List<CompanyInfo> company { get; set; }
}

public class CompanyInfo
{
    public string company_name { get; set; }
    public string company_logo { get; set; }
    public string invested { get; set; }
}

然后反序列化并遍历:

// 接收JSON数据
var responseString = await response.Content.ReadAsStringAsync();

// 反序列化到实体类
List<RootObject> rootList = JsonConvert.DeserializeObject<List<RootObject>>(responseString);
// 获取第一个根对象里的合同列表
List<ContractItem> contractList = rootList[0].company;

// 遍历所有合同
foreach (var contract in contractList)
{
    string contractId = contract.contract_ID;
    CompanyInfo company = contract.company[0];
    
    Debug.Log($"合同ID: {contractId}, 公司名称: {company.company_name}, Logo: {company.company_logo}, 投资金额: {company.invested}");
}

两种方法都能正确提取所有contract_ID及其关联的公司信息,你可以根据自己的代码习惯选择使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:55:42