循环遍历具有嵌套对象的JSON对象并检查布尔值c#

阿斯克

我有2个反序列化为ac#对象的JSON对象

JSON对象都看起来像这样

{
"obj2": {
  "booleanVal": true,
  "data": "me",
  "foo": {
    "Key": "",
    "booleanVal": false,
    "dataValue": "foo"
  },
  "Ide": {
    "booleanVal": true,
    "foo2": {
        "booleanVal": false,
        "dataValue": "foo"
      }
   }
}
{
"obj1": {
  "booleanVal": true,
  "data": "me",
  "foo": {
    "Key": "",
    "booleanVal": false,
    "dataValue": "foo"
  },
  "Ide": {
    "booleanVal": true,
    "foo2": {
        "booleanVal": false,
        "dataValue": "foo"
      }
   }
}

我想循环遍历C#对象obj1,检查booleanVal以将其与obj2的booleanval进行比较,我似乎无法找出一种通过该对象到达最后一个嵌套对象到达booleanVal的好方法,到目前为止我一直在尝试是这样的

private void loop(obj1, obj2)
{
  foreach (var p in obj1)
            {
                foreach (var c in obj2)
                {

                    if (p.booleanVal != c.booleanVal)
                    {
                        Console.Error.WriteLine("illegal");
                    }
                }
            }
}
如果我的代码

您可以使用linq。
在.cs文件顶部添加以下行。

using System.Linq;

有很多可能的方法可以使用linq轻松地遍历列表。下面的两个示例将为您提供有关如何到达最后一个嵌套对象并进行比较的想法。也许您需要根据需要对其进行修改。

示例1:在每个级别分别匹配booleanVal

foreach (var obj1Item in obj1)
{
    if(obj2.Any(obj2Item => obj2Item.booleanVal == obj1Item.booleanVal))
    {
        // first level booleanVal matched
    }

    if(obj2.Any(obj2Item => obj2Item.foo.booleanVal == obj1Item.foo.booleanVal))
    {
        // second level booleanVal matched
    }

    if(obj2.Any(obj2Item => obj2Item.Ide.booleanVal == obj1Item.Ide.booleanVal))
    {
        // second level booleanVal matched
    }

    if(obj2.Any(obj2Item => obj2Item.Ide.foo2.booleanVal == obj1Item.Ide.foo2.booleanVal))
    {
        // third level booleanVal matched
    }

}

示例2:在所有级别上同时匹配booleanVal

foreach (var obj1Item in obj1)
{
    if(obj2.Any(obj2Item => obj2Item.booleanVal == obj1Item.booleanVal && 
                            obj2Item.foo.booleanVal == obj1Item.foo.booleanVal &&
                            obj2Item.Ide.booleanVal == obj1Item.Ide.booleanVal &&
                            obj2Item.Ide.foo2.booleanVal == obj1Item.Ide.foo2.booleanVal))
    {
        // booleanVal at all levels matched
    }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C# 循环遍历 json 对象

来自分类Dev

带有@CollectionTable 的休眠会在更新时删除具有相同布尔值的集合对象

来自分类Dev

遍历列表布尔值打印出失败的 C#

来自分类Dev

C#:根据类变量将对象转换为布尔值

来自分类Dev

在对象上更新时不保存 C# 布尔值

来自分类Dev

从javascript中的json对象过滤布尔值

来自分类Dev

将所有对象字段转换为布尔值

来自分类Dev

如何遍历具有嵌套属性的 JSON 对象,操作并返回一个新对象?

来自分类Dev

遍历嵌套的json对象

来自分类Dev

遍历嵌套的 JSON 对象

来自分类Dev

基于成员布尔值的向量中的C ++排序对象

来自分类Dev

如何使用CoreData从嵌套的对象集中获取布尔值为YES的对象

来自分类Dev

在C#中,如何为具有多个嵌套数组的JSON对象建模?

来自分类Dev

Python - 如果有值,则循环遍历布尔值

来自分类Dev

将具有布尔值的文本文件作为对象读取到数组列表中

来自分类Dev

排序嵌套的JSON对象基于在循环值?

来自分类Dev

AngularJS显示对象的布尔值

来自分类Dev

删除具有特定值的嵌套对象

来自分类Dev

循环遍历嵌套的json数组对象并求和javascript

来自分类Dev

具有布尔值的Cpp网格

来自分类Dev

遍历嵌套对象并更改值

来自分类Dev

Javascript检查对象及其嵌套对象的所有值

来自分类Dev

如何基于条件检查数组对象javascript返回布尔值

来自分类Dev

在C#中遍历json对象

来自分类Dev

遍历复杂的 json 对象 C#

来自分类Dev

遍历嵌套的JSON子对象

来自分类Dev

jQuery每个循环遍历具有多个对象的数组

来自分类Dev

循环遍历具有ng-repeat angle的对象

来自分类Dev

用布尔值打破嵌套的while循环

Related 相关文章

热门标签

归档