根据属性值从JObject返回子对象

弗雷迪

我有一些JSON,如下所示。我想从中获取所有类型为“ Item”的对象。

 string json = @"
        {
            'name': 'Object 1',
            'content': {
                'body': {
                    'id': 'body',
                    'type': 'Body'
                },
                'style': {
                    'id': 'style',
                    'type': 'Style'
                },
                'DynamicName-123': {
                    'id': 'DynamicName-123',
                    'type': 'Row'
                },
                'DynamicName-434': {
                    'id': 'DynamicName-434',
                    'type': 'Column'
                },
                'DynamicName-223': {
                    'id': 'DynamicName-223',
                    'type': 'Item'
                }
            }
        }";

JObject obj = JObject.Parse(json);

预期产量:

'id': 'DynamicName-223',
'type': 'Item'

我怎样才能做到这一点?

布赖恩·罗杰斯

您可以使用LINQ-to-JSON查询获得具有“项目”的“类型”属性值的对象,如下所示:

JObject obj = JObject.Parse(json);

List<JObject> items = obj["content"]
    .Children<JProperty>()
    .Where(p => (string)p.Value["type"] == "Item")
    .Select(p => (JObject)p.Value)
    .ToList();

小提琴:https : //dotnetfiddle.net/dy1nQC

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章