{
"connects": [
{
"label": "",
"pageSourceId": "nodeBegin",
"pageTargetId": "1584412572408",
"target": {
"blockId": "1584412572408",
"blockX": 368,
"blockY": 137,
"connects": [
{
"label": "1000",
"pageSourceId": "1584412572408",
"pageTargetId": "1584412576172",
"target": {
"blockId": "1584412576172",
"blockX": 214,
"blockY": 154,
"connects": [],
"dealerId": "203",
"dealerName": "集团翼支付",
"isRoot": false,
"use": true
}
},
{
"label": "1000",
"pageSourceId": "1584412572408",
"pageTargetId": "1584412578216",
"target": {
"blockId": "1584412578216",
"blockX": 174,
"blockY": 291,
"connects": [],
"dealerId": "201",
"dealerName": "集团电子渠道",
"isRoot": false,
"use": true
}
},
{
"label": "1000",
"pageSourceId": "1584412572408",
"pageTargetId": "1584412578216",
"target": {
"blockId": "1584412578216",
"blockX": 174,
"blockY": 291,
"connects": [],
"dealerId": "12",
"dealerName": "集团电子渠道",
"isRoot": false,
"use": true
}
}
],
"dealerId": "204",
"dealerName": "物联网自服务平台",
"isRoot": false,
"use": true
}
},
{
"label": "",
"pageSourceId": "nodeBegin",
"pageTargetId": "1584412572408",
"target": {
"blockId": "1584412572408",
"blockX": 368,
"blockY": 137,
"connects": [
{
"label": "1000",
"pageSourceId": "1584412572408",
"pageTargetId": "1584412576172",
"target": {
"blockId": "1584412576172",
"blockX": 214,
"blockY": 154,
"connects": [],
"dealerId": "203",
"dealerName": "集团翼支付",
"isRoot": false,
"use": true
}
},
{
"label": "1000",
"pageSourceId": "1584412572408",
"pageTargetId": "1584412578216",
"target": {
"blockId": "1584412578216",
"blockX": 174,
"blockY": 291,
"connects": [],
"dealerId": "201",
"dealerName": "集团电子渠道",
"isRoot": false,
"use": true
}
}
],
"dealerId": "204",
"dealerName": "物联网自服务平台",
"isRoot": false,
"use": true
}
}
],
"isRoot": true
}
package com.sitech.crmpd.domain;
import lombok.Data;
import org.apache.commons.collections.CollectionUtils;
import java.util.List;
/**
* @oauth: qiangSW
* @date: 2020/3/19 11:27
* @description: com.sitech.crmpd.domain
* @doc:
*/
@Data
public class Ruletree {
public boolean isRoot;
public List connects;
/**
* 解析树
*
* @param connects 树
* @param channels 解析树后放入的值
*/
public void resolverTree(List connects, List channels) {
if (CollectionUtils.isNotEmpty(connects)) {
connects.stream().forEach(each -> {
if ("nodeBegin".equals(each.getPageSourceId())) {
resolverTree(each.getTarget().getConnects(), channels);
return;
}
Long dealerId = Long.valueOf(each.getTarget().getDealerId());
channels.add(dealerId);
if (CollectionUtils.isNotEmpty(each.getTarget().getConnects())) {
resolverTree(each.getTarget().getConnects(), channels);
}
});
}
}
}
@Data
class Connect {
public Target target;
public String label;
public String pageSourceId;
}
@Data
class Target {
public String blockId;
public String blockX;
public String blockY;
public List connects;
public String dealerId;
public String dealerName;
public String use;
public boolean isRoot;
}
public static void main(String[] args) {
String str = "{\n" +
" \"connects\": [\n" +
" {\n" +
" \"label\": \"\",\n" +
" \"pageSourceId\": \"nodeBegin\",\n" +
" \"pageTargetId\": \"1584412572408\",\n" +
" \"target\": {\n" +
" \"blockId\": \"1584412572408\",\n" +
" \"blockX\": 368,\n" +
" \"blockY\": 137,\n" +
" \"connects\": [\n" +
" {\n" +
" \"label\": \"1000\",\n" +
" \"pageSourceId\": \"1584412572408\",\n" +
" \"pageTargetId\": \"1584412576172\",\n" +
" \"target\": {\n" +
" \"blockId\": \"1584412576172\",\n" +
" \"blockX\": 214,\n" +
" \"blockY\": 154,\n" +
" \"connects\": [],\n" +
" \"dealerId\": \"203\",\n" +
" \"dealerName\": \"集团翼支付\",\n" +
" \"isRoot\": false,\n" +
" \"use\": true\n" +
" }\n" +
" },\n" +
" {\n" +
" \"label\": \"1000\",\n" +
" \"pageSourceId\": \"1584412572408\",\n" +
" \"pageTargetId\": \"1584412578216\",\n" +
" \"target\": {\n" +
" \"blockId\": \"1584412578216\",\n" +
" \"blockX\": 174,\n" +
" \"blockY\": 291,\n" +
" \"connects\": [],\n" +
" \"dealerId\": \"201\",\n" +
" \"dealerName\": \"集团电子渠道\",\n" +
" \"isRoot\": false,\n" +
" \"use\": true\n" +
" }\n" +
" },\n" +
"\t\t\t\t\t{\n" +
" \"label\": \"1000\",\n" +
" \"pageSourceId\": \"1584412572408\",\n" +
" \"pageTargetId\": \"1584412578216\",\n" +
" \"target\": {\n" +
" \"blockId\": \"1584412578216\",\n" +
" \"blockX\": 174,\n" +
" \"blockY\": 291,\n" +
" \"connects\": [],\n" +
" \"dealerId\": \"12\",\n" +
" \"dealerName\": \"集团电子渠道\",\n" +
" \"isRoot\": false,\n" +
" \"use\": true\n" +
" }\n" +
" }\n" +
" ],\n" +
" \"dealerId\": \"204\",\n" +
" \"dealerName\": \"物联网自服务平台\",\n" +
" \"isRoot\": false,\n" +
" \"use\": true\n" +
" }\n" +
" },\n" +
"\t\t{\n" +
" \"label\": \"\",\n" +
" \"pageSourceId\": \"nodeBegin\",\n" +
" \"pageTargetId\": \"1584412572408\",\n" +
" \"target\": {\n" +
" \"blockId\": \"1584412572408\",\n" +
" \"blockX\": 368,\n" +
" \"blockY\": 137,\n" +
" \"connects\": [\n" +
" {\n" +
" \"label\": \"1000\",\n" +
" \"pageSourceId\": \"1584412572408\",\n" +
" \"pageTargetId\": \"1584412576172\",\n" +
" \"target\": {\n" +
" \"blockId\": \"1584412576172\",\n" +
" \"blockX\": 214,\n" +
" \"blockY\": 154,\n" +
" \"connects\": [],\n" +
" \"dealerId\": \"203\",\n" +
" \"dealerName\": \"集团翼支付\",\n" +
" \"isRoot\": false,\n" +
" \"use\": true\n" +
" }\n" +
" },\n" +
" {\n" +
" \"label\": \"1000\",\n" +
" \"pageSourceId\": \"1584412572408\",\n" +
" \"pageTargetId\": \"1584412578216\",\n" +
" \"target\": {\n" +
" \"blockId\": \"1584412578216\",\n" +
" \"blockX\": 174,\n" +
" \"blockY\": 291,\n" +
" \"connects\": [],\n" +
" \"dealerId\": \"201\",\n" +
" \"dealerName\": \"集团电子渠道\",\n" +
" \"isRoot\": false,\n" +
" \"use\": true\n" +
" }\n" +
" }\n" +
" ],\n" +
" \"dealerId\": \"204\",\n" +
" \"dealerName\": \"物联网自服务平台\",\n" +
" \"isRoot\": false,\n" +
" \"use\": true\n" +
" }\n" +
" }\n" +
" ],\n" +
" \"isRoot\": true\n" +
"}";
Ruletree ruletree = JSONObject.parseObject(str, Ruletree.class);
List channels = Lists.newArrayList();
ruletree.resolverTree(ruletree.getConnects(), channels);
System.out.println("解析树:"+channels);
}
输出结果
解析树:[203, 201, 12, 203, 201]