遍历一个json对象,向下查找条件子节点,如果不存在,则开始遍历childNode,取得所有审核人信息

新手上路,请多包涵

遍历一个json对象,向下查找conditionNodes条件子节点,如果不存在,则开始遍历childNode,取得type=1的所有审核人信息,保留原结构方便查找上一级的审核人信息

Json数据结构大致如下:

{
    "nodeName": "发起人",
    "type": 0,
    "id": "_8c697987-f88e-43b0-b67f-36cc3530e06a",
    "childNode": {
        "id": "_7dd20c08-e177-4ddd-8481-7fefcf4fa6e2",
        "nodeName": "审批人",
        "type": 1,
        "childNode": {
            "id": "_4e9d8722-33be-4073-80aa-ceca6599f263",
            "nodeName": "条件分支",
            "type": 4,
            "conditionNodes": [
                {
                    "id": "_16c48673-fe23-4e15-842e-a4a5f738e03e",
                    "nodeName": "条件1",
                    "type": 3,
                    "childNode": {
                        "id": "_ad137e80-8965-4cd3-a4bb-3ef3d4cf6f9c",
                        "nodeName": "机器人",
                        "type": 2,
                        "childNode": {
                            "id": "_a1d518b7-aa18-41b3-81a3-0e7e1d2a8cde",
                            "nodeName": "审批人",
                            "type": 1,
                            "childNode": null
                        }
                    }
                },
                {
                    "id": "_61f38c80-5d4b-49fd-bf4e-341f25b5a59d",
                    "nodeName": "条件2",
                    "type": 3,
                    "childNode": {
                        "id": "_6de1ace1-6454-426d-ada0-b1e57cb6d361",
                        "nodeName": "机器人",
                        "type": 2,
                        "childNode": {
                            "id": "_5d2b4876-e7ba-43d6-95b4-fe93a74d4120",
                            "nodeName": "审批人",
                            "type": 1,                           
                            "childNode": null
                        }
                    }
                }
            ],
            "childNode": {
                "id": "_4d0590c1-e501-4da6-af9a-adceeea05be1",
                "nodeName": "审批人",
                "type": 1,
                "childNode": {
                    "id": "_2b283452-426f-46b1-8b7a-00650ab71d37",
                    "nodeName": "结束节点",
                    "type": 5
                }
            }
        }
    }
}

为了实现流程回退的效果,需要取得所有的审核人节点信息,然后从中查找出当前审核人的上一个审核人信息,为了保留原有的结构信息,有了思路,但是不知道怎么写

阅读 870
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题