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

C# 使用Newtonsoft反序列化JSON提取业主信息问题求解

问题原因

  • 你提供的JSON样本每个对象的最后一个属性末尾存在多余的尾随逗号,Newtonsoft.Json默认配置下会直接解析报错
  • 反序列化得到的是List<Homeowners>集合类型,直接调用ToString()方法只会输出集合的类型全名,不会打印集合内的具体字段内容

调整方案

修改desiraliseJSON方法,先配置JSON解析规则兼容尾随逗号,再把解析得到的业主信息按需求拼接后输出到文本框即可,示例代码如下:

private void desiraliseJSON(string strJSON)
{
    try
    {
        // 配置解析规则,允许JSON存在尾随逗号,兼容返回不规范JSON的第三方接口
        var settings = new JsonSerializerSettings
        {
            TrailingCommasHandling = TrailingCommasHandling.All
        };
        // 反序列化得到业主集合
        List<Homeowners> jsondata = JsonConvert.DeserializeObject<List<Homeowners>>(strJSON, settings);
        
        // 方式1:按自定义文本格式拼接输出(可按需调整格式)
        StringBuilder sb = new StringBuilder();
        foreach (var owner in jsondata)
        {
            sb.AppendLine($"姓名:{owner.HomeOwnerFirstName} {owner.HomeOwnerLastName},地址:{owner.PropertyAddress}");
        }
        txtBox2.Text = sb.ToString();

        // 方式2:如果需要输出格式化JSON结构,可替换为下面的代码
        // txtBox2.Text = JsonConvert.SerializeObject(jsondata, Formatting.Indented);
    }
    catch (Exception ex)
    {
        txtBox2.Text = "Error: " + ex.Message;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:09:04