一尘不染

将具有可变属性的JSON对象解析为强类型对象

c#

{
"Profile": {
    "dProperty1": {
        "a": "value",
        "b": "value",
        "c": "value",
        "d": "value",
        "e": "value"
    },
    "dProperty2": {
        "a": "value",
        "b": "value",
        "d": "value",
        "e": "value"
    },
    "dProperty3": {
        "a": "value",
        "b": "value",
        "d": "value",
        "e": "value"
       }
    }
}

我有一个JSON对象,它可以具有任意数量的动态属性。所有属性都是主要由相同字段组成的对象。如何在C#中将此JSON解析为强类型对象?


阅读 365

收藏
2020-05-19

共1个答案

一尘不染

如果您必须具有强类型化的结果,我会将反序列化为属性叠加字典

class AbscdeClass
{
    public string A { get; set; }
    public string B { get; set; }
    public string C { get; set; }
    public string D { get; set; }
    public string E { get; set; }
}

class JsonBody
{
    public Dictionary<string, AbscdeClass> Profile { get; set; }
}

并将原始JSON文本解析为

JsonBody json = JsonConvert.DeserializeObject<JsonBody>(jsonString);
2020-05-19