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

使用NewtonSoft JSON Convert解析JSON遇阻:无法构建对应C#类

处理带动态键的JSON解析问题(NewtonSoft.Json)

我懂你现在卡在哪了——这个JSON里的merchants字段全是动态生成的键名,像RZX9YMHSMP6A8、MNOVJT2ZRRRSC这种,常规的固定C#类根本没法对应上对吧?别担心,NewtonSoft.Json(也就是Json.NET)专门有针对这种动态键场景的解决方案,给你两种实用的处理方式:

方法一:强类型字典映射(推荐用于长期维护的代码)

这种方式用Dictionary<string, List<T>>来匹配merchants下的动态键结构,既保留强类型的优势,又能兼容动态键。

首先定义子对象的类,对应每个商家下的操作条目:

public class MerchantAction
{
    public string objectId { get; set; }
    public string type { get; set; }
    public long ts { get; set; }
}

然后定义根对象类,把merchants字段设为字典类型:

public class RootJsonModel
{
    public string appId { get; set; }
    public Dictionary<string, List<MerchantAction>> merchants { get; set; }
}

最后用Json.NET解析即可:

// 替换成你的JSON字符串
string jsonContent = "{ \"appId\":\"G9RNVJYTS6SFY\", \"merchants\":{ \"RZX9YMHSMP6A8\":[{ \"objectId\":\"A:G9RNVJYTS6SFY\", \"type\":\"DELETE\", \"ts\":1522736100111 }], \"MNOVJT2ZRRRSC\":[{ \"objectId\":\"A:G9RNVJYTS6SFY\", \"type\":\"CREATE\", \"ts\":1522736100111 }] } }";

RootJsonModel parsedResult = JsonConvert.DeserializeObject<RootJsonModel>(jsonContent);

// 访问动态键的示例
var rzxActions = parsedResult.merchants["RZX9YMHSMP6A8"];
foreach (var action in rzxActions)
{
    Console.WriteLine($"操作类型:{action.type},时间戳:{action.ts}");
}

方法二:动态JObject解析(适合临时/灵活处理场景)

如果不需要完整的强类型映射,也可以用JObject动态遍历解析,省去定义类的步骤:

string jsonContent = "你的JSON字符串";
JObject jsonObj = JObject.Parse(jsonContent);

// 获取appId
string appId = jsonObj["appId"].ToString();

// 遍历所有商家的动态键
foreach (JProperty merchantProp in jsonObj["merchants"].Children<JProperty>())
{
    string merchantKey = merchantProp.Name; // 比如RZX9YMHSMP6A8
    var actionList = merchantProp.Value.ToObject<List<MerchantAction>>();
    
    // 处理当前商家的操作
    Console.WriteLine($"商家ID:{merchantKey}");
    foreach (var action in actionList)
    {
        Console.WriteLine($" - 操作:{action.type},时间:{action.ts}");
    }
}

两种方式各有优势:强类型字典适合需要长期维护、依赖智能提示的项目;动态解析则更灵活,适合快速处理临时数据的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:08:48