如何基于JObject的子属性值选择父属性值

杰伊

我正在从API调用中获取json数据,并且需要从数据中读取特定值。

以下是json的简化版本:

  {
     "Modules":[
        {
           "ModuleId":370,
           "Title":"Getting Oriented",
           "Modules":[
              {
                 "ModuleId":378,
                 "Title":"Artifacts",
                 "Modules":[

                 ],
                 "Topics":[
                    {
                       "TopicId":379
                    },
                    {
                       "TopicId":380                     
                    },
                    {
                       "TopicId":381                     
                    }
                 ]
              }
           ],
           "Topics":[
              {
                 "TopicId":371               
              },
              {
                 "TopicId":372
              },
              {
                 "TopicId":373
              }
           ]
        },      
        {
           "ModuleId":389,
           "Title":"Build Your Solution",
           "Modules":[
              {
                 "ModuleId":390,
                 "Title":"Core Platform Configuration",
                 "Modules":[
                    {
                       "ModuleId":392,
                       "Title":"Artifacts",                  
                       "Topics":[
                          {
                             "TopicId":393                          
                          }
                       ]
                    }
                 ],
                 "Topics":[
                    {
                       "TopicId":391                   
                    }
                 ]
              }    

           ]
        }
     ]
  }

我将其转换为JObject并使用以下代码获取所有TopicId。

var topicIds = jo.Descendants()
    .OfType<JProperty>()
    .Where(p => p.Name == "TopicId" &&
                p.Value != null)
    .ToList();

从那里,我需要TopicId的父代的ModuleId值。

我尝试了以下操作,但它返回了父级的所有子级。

foreach (var topicId in topicIds)
{

   var moduleId = jo.DescendantsAndSelf()
        .OfType<JProperty>()
        .Where(p => p.Value == topicId.Value)
        .Select(p => p.Parent)
        .ToString();
}

我只想要“ TopicId”父级的“ ModuleId”值

布赖恩·罗杰斯

您已经有了该topicId属性,因此只需在循环内从那里向上导航即可获得相应的moduleId值:

var moduleId = (string)topicId.Parent.Parent.Parent.Parent["ModuleId"];

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

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基于节点属性值的Echo XML子节点值

来自分类Dev

如何基于属性值选择XmlElement?

来自分类Dev

如何在Matlab中基于列属性值选择特定行?

来自分类Dev

在LESS中使用父选择器指定属性值?

来自分类Dev

如何通过使用xmldocument中的子节点的属性值来获取父节点的属性值?

来自分类Dev

如何从“选择路径”或“选择属性ximpleware”中获取属性值

来自分类Dev

按子元素的属性值对父元素进行排序

来自分类Dev

根据父级的属性值选择子级元素

来自分类Dev

如何基于其他表值自动导出属性值

来自分类Dev

如何基于父节点属性更新TreeView子节点

来自分类Dev

XPath:根据父级属性获取子级值

来自分类Dev

如何从Java中的XML获取父元素属性和子值?

来自分类Dev

使用Nokogiri根据子属性的值提取父属性的值

来自分类Dev

基于节点属性值的Echo XML子节点值

来自分类Dev

SQL:如何仅基于某些属性值选择不同的行

来自分类Dev

如何基于属性值选择XmlElement?

来自分类Dev

基于属性值的xml xsl节点选择

来自分类Dev

如何基于AngularJs中的属性分配值

来自分类Dev

如何基于父元素的属性获取子元素的属性

来自分类Dev

如何基于xslt中以“ pro_”开头的属性值选择max xml属性?

来自分类Dev

jQuery属性选择器基于其中包含句点的值

来自分类Dev

如何通过使用xmldocument中的子节点的属性值来获取父节点的属性值?

来自分类Dev

按子元素的属性值对父元素进行排序

来自分类Dev

如何获取XML父属性值

来自分类Dev

如何基于JS中的子值获取父JSON对象

来自分类Dev

用子节点的值替换 XML 父节点的属性

来自分类Dev

如何读取基于配置属性的值传递?

来自分类Dev

XSLT:递归连接父节点属性值和子节点属性值

来自分类Dev

如何在Angular的子组件中单击按钮时为父组件属性设置值

Related 相关文章

  1. 1

    基于节点属性值的Echo XML子节点值

  2. 2

    如何基于属性值选择XmlElement?

  3. 3

    如何在Matlab中基于列属性值选择特定行?

  4. 4

    在LESS中使用父选择器指定属性值?

  5. 5

    如何通过使用xmldocument中的子节点的属性值来获取父节点的属性值?

  6. 6

    如何从“选择路径”或“选择属性ximpleware”中获取属性值

  7. 7

    按子元素的属性值对父元素进行排序

  8. 8

    根据父级的属性值选择子级元素

  9. 9

    如何基于其他表值自动导出属性值

  10. 10

    如何基于父节点属性更新TreeView子节点

  11. 11

    XPath:根据父级属性获取子级值

  12. 12

    如何从Java中的XML获取父元素属性和子值?

  13. 13

    使用Nokogiri根据子属性的值提取父属性的值

  14. 14

    基于节点属性值的Echo XML子节点值

  15. 15

    SQL:如何仅基于某些属性值选择不同的行

  16. 16

    如何基于属性值选择XmlElement?

  17. 17

    基于属性值的xml xsl节点选择

  18. 18

    如何基于AngularJs中的属性分配值

  19. 19

    如何基于父元素的属性获取子元素的属性

  20. 20

    如何基于xslt中以“ pro_”开头的属性值选择max xml属性?

  21. 21

    jQuery属性选择器基于其中包含句点的值

  22. 22

    如何通过使用xmldocument中的子节点的属性值来获取父节点的属性值?

  23. 23

    按子元素的属性值对父元素进行排序

  24. 24

    如何获取XML父属性值

  25. 25

    如何基于JS中的子值获取父JSON对象

  26. 26

    用子节点的值替换 XML 父节点的属性

  27. 27

    如何读取基于配置属性的值传递?

  28. 28

    XSLT:递归连接父节点属性值和子节点属性值

  29. 29

    如何在Angular的子组件中单击按钮时为父组件属性设置值

热门标签

归档