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

如何将含大量属性的JSON反序列化为字典而非逐个创建属性?

解决方案

当然可以直接将这些属性反序列化为字典,无需逐个手动定义类属性,只需调整你的类结构即可:

调整后的类定义

把原来嵌套的ImportedSubProperties类替换为Dictionary<string, ImportedProperties>类型,修改后的类代码如下:

internal class ImportedObjects
{
    [JsonProperty("Object")]
    public Dictionary<string, ImportedProperties> ImportedObject { get; set; }
}

internal class ImportedProperties
{
    [JsonProperty("transformation")]
    public string Transformation { get; set; }
    [JsonProperty("source")]
    public string Source { get; set; }
    [JsonProperty("default")]
    public string Default { get; set; }
}

注意:给ImportedProperties的属性添加[JsonProperty]特性,确保和JSON里的小写字段名一一对应,避免反序列化时出现字段匹配失败的问题。

解析代码无需修改

你原有的读取和反序列化逻辑可以保持不变:

using (StreamReader r = new StreamReader(file))
{
    string json = r.ReadToEnd();
    MappingObjects = JsonConvert.DeserializeObject<ImportedObjects>(json);
}

访问字典中的属性

后续可以通过字典的键直接访问对应属性值,示例如下:

// 获取series的source字段值
string seriesSource = MappingObjects.ImportedObject["series"].Source;
// 获取X字段的default值
string xDefault = MappingObjects.ImportedObject["X"].Default;

这样无论Object下有多少个属性,都会自动被解析到字典中,无需再手动添加任何类属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:31:10