首页 > 解决方案 > Json嵌套对象反序列化

问题描述

我想根据消耗的 Json 动态创建 c# 对象。我不关心这个 json,只是想挑选出我需要的属性。

我不知道使用动态关键字是否是最佳实践,并且基于创建的对象我可以创建一个全新的 json 结构。

如何对嵌套对象进行去串音处理。示例 json:

{
'name': 'James',
'Profile': {
    'body': {
        'id': 'Employee1',
        'type': 'Employee',
        'attributes': {
           props...

        },
        'job': {
          props..
        },
        'team': [],
    },
}

这是一个简单的尝试。

        var test = JsonConvert.DeserializeObject<dynamic>(json);

        Console.WriteLine(test.ToString());

我可以创建对象列表,但是当我开始父/子对象时,我似乎无法让它工作。

下面的 JSON 可以很好地作为输出:

'body': {
            'id': 'Employee1',
            'type': 'Employee',
            'attributes': {
               props...

            },
            'job': {
              props..
            },
            'team': [],
        }

期望的输出

    {
'name': 'James',
'Profile': {
    'body': {
        'id': 'Employee1',
        'type': 'Employee',
        'attributes': {
           props...

        },
        'job': {
          props..
        },
        'team': [],
    },
'Profile': {
    'body': {
        'id': 'Employee2',
        'type': 'Employee',
        'attributes': {
           props...

        },
        'job': {
          props..
        },
        'team': [],
    }
}

如何反序列化嵌套对象?

标签: c#jsonjson.net

解决方案


您可以按照这行代码使用 json 类

dynamic data = Json.Decode(json);

推荐阅读