You need to enable JavaScript to run this app. JSON反序列化为对象时如何将dependency字段映射为字典结构
优惠活动
大模型
产品
解决方案
定价
更多

JSON反序列化为对象时如何将dependency字段映射为字典结构

解决方案

完全可以实现该需求,你当前使用的Newtonsoft.Json库原生支持将JSON键值对结构直接反序列化为Dictionary<string, string>类型,不需要单独定义Dependency类,仅需修改Root类的字段类型即可。

修改后的代码如下:

// 仅保留结构固定的Assets类即可,无需定义Dependency类
public class Assets
{
    public List<string> images { get; set; }
}

public class Root
{
    public int uniqueID { get; set; }
    public string url { get; set; }
    // 把原来的Dependency类型替换为Dictionary<string, string>
    public Dictionary<string, string> dependency { get; set; }
    public Assets assets { get; set; }
}

static void Main(string[] args){
    string jsonInput = File.ReadAllText(args[0]);
    Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(jsonInput);
    
    // 使用示例:获取指定包的版本
    string package1Version = myDeserializedClass.dependency["package1"];
    // 遍历所有依赖包
    foreach (var package in myDeserializedClass.dependency)
    {
        Console.WriteLine($"包名:{package.Key},版本:{package.Value}");
    }
}

补充说明

  • 后续dependency下新增任意包名、版本条目,都不需要修改实体类结构,反序列化时会自动添加到字典中
  • 如果你后续切换到.NET官方的System.Text.Json序列化库,该映射规则同样适用,不需要额外配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 09:06:06