FastJson解析Json,封装JavaBean对象

获取到前端的json,对其进行分析

1、获取最外层前端json对应得JavaBean

(1)未分析格式的json串

首先我们获取到原始的json字符串

{
    "type":"start",
    "content":"所有人",
    "properties":{
        "title":"发起人124124",
        "initiator":"ALL",
        "nodeName":"发起人124124",
        "withdrawSwitch":true,
        "memberSet":[
            {
                "deptId":38165,
                "nickName":"哈哈哈",
                "userId":417586,
                "userName":"baiboit"
            }
        ],
        "formOperates":[
            {
                "name":"单行输入框",
                "key":"1598583241000_12287",
                "type":"input",
                "checkedList":[
                    "visibility"
                ]
            },
            {
                "name":"单选框",
                "key":"1598583242000_8033",
                "type":"radio",
                "checkedList":[
                    "visibility"
                ]
            },
            {
                "name":"日期",
                "key":"1598583244000_29500",
                "type":"date",
                "checkedList":[
                    "visibility"
                ]
            }
        ]
    },
    "nodeId":"SID-55cf0a21-2ebc-febe-dc71-f5a629374be6",
    "childNode":{
        "type":"fill",
        "content":"发起人自选",
        "properties":{
            "title":"填报人",
            "menbers":{
                "dep":[
                    {
                        "nodeId":4,
                        "deptId":4,
                        "deptName":"xxx研发部",
                        "parentDeptId":1
                    }
                ]
            },
            "userOptional":true,
            "nodeName":"填报人",
            "fillSetSwitch":false,
            "memberSet":[
                {
                    "deptId":38165,
                    "nickName":"哈哈哈哈",
                    "userId":417571,
                    "userName":"wuniting"
                }
            ],
            "memberSetOptional":[
                {
                    "deptId":null,
                    "nickName":"",
                    "userId":null,
                    "userName":null
                }
            ],
            "circulationRules":"",
            "processNodeTipForm":{
                "arriveReminders":[

                ],
                "UntreatedNum":"",
                "UntreatedTime":"",
                "AutoAlert":[

                ]
            },
            "formOperates":[
                {
                    "name":"",
                    "type":"",
                    "key":"",
                    "checkedList":[
                        "visibility",
                        "write"
                    ]
                }
            ]
        },
        "nodeId":"SID-6745bda6-55fd-9029-ac2e-b6bf38e756db",
        "prevId":"SID-55cf0a21-2ebc-febe-dc71-f5a629374be6",
        "childNode":{
            "type":"fill",
            "content":"发起人自选",
            "properties":{
                "title":"填报人12323455",
                "menbers":{
                    "dep":[
                        {
                            "nodeId":4,
                            "deptId":4,
                            "deptName":"xxx研发部",
                            "parentDeptId":1
                        }
                    ]
                },
                "userOptional":true,
                "nodeName":"填报人",
                "fillSetSwitch":false,
                "memberSet":[
                    {
                        "deptId":38165,
                        "nickName":"哈哈哈哈哈",
                        "userId":417557,
                        "userName":"zhangmiao"
                    }
                ],
                "memberSetOptional":[
                    {
                        "deptId":null,
                        "nickName":"",
                        "userId":null,
                        "userName":null
                    }
                ],
                "circulationRules":"renyi",
                "processNodeTipForm":{
                    "arriveReminders":[
                        "shortMessage",
                        "mail"
                    ],
                    "UntreatedNum":"30",
                    "UntreatedTime":"minutes",
                    "AutoAlert":[
                        "shortMessage"
                    ]
                },
                "formOperates":[
                    {
                        "name":"单行输入框",
                        "key":"1598583241000_12287",
                        "type":"input",
                        "checkedList":[
                            "visibility"
                        ]
                    },
                    {
                        "name":"单选框",
                        "key":"1598583242000_8033",
                        "type":"radio",
                        "checkedList":[
                            "visibility"
                        ]
                    },
                    {
                        "name":"日期",
                        "key":"1598583244000_29500",
                        "type":"date",
                        "checkedList":[
                            "visibility"
                        ]
                    }
                ]
            },
            "nodeId":"SID-2bbfe3a8-4c3b-a143-e644-6193fe141426",
            "prevId":"SID-6745bda6-55fd-9029-ac2e-b6bf38e756db",
            "childNode":{
                "nodeId":"SID-990e8b6a-68d1-dcf9-9ad1-00f8d2ccdc6a",
                "type":"approver",
                "content":"发起人自选",
                "properties":{
                    "title":"审批人123124",
                    "nodeName":"审批人",
                    "assigneeType":"optional",
                    "approverSetSwitch":false,
                    "memberSet":[
                        {
                            "deptId":38165,
                            "nickName":"哈哈哈哈哈哈",
                            "userId":417555,
                            "userName":"yuansong"
                        }
                    ],
                    "memberSetOptional":[
                        {
                            "deptId":null,
                            "nickName":"",
                            "userId":null,
                            "userName":null
                        }
                    ],
                    "fillSwitch":false,
                    "ccSetSwitch":false,
                    "approvalOpinions":"disable",
                    "backOff":{
                        "Switch":true,
                        "backOffState":false,
                        "backOffNode":"faqiren",
                        "btnName":"1213",
                        "surebackOffNode":"zhiding"
                    },
                    "transfer":{
                        "Switch":false,
                        "transferState":false,
                        "btnName":"",
                        "memberSet":[
                            {
                                "deptId":38165,
                                "nickName":"哈哈哈哈哈",
                                "userId":417555,
                                "userName":"yuansong"
                            }
                        ]
                    },
                    "addApproverPerson":{
                        "Switch":false,
                        "addApproverState":false,
                        "btnName":"",
                        "memberSet":[
                            {
                                "deptId":38165,
                                "nickName":"哈哈哈哈哈哈",
                                "userId":417555,
                                "userName":"yuansong"
                            }
                        ]
                    },
                    "addCcPerson":{
                        "Switch":false,
                        "addCcState":false,
                        "btnName":"",
                        "memberSet":[
                            {
                                "deptId":38165,
                                "nickName":"哈哈哈哈",
                                "userId":417555,
                                "userName":"yuansong"
                            }
                        ]
                    },
                    "addEnclosurePerson":{
                        "Switch":false,
                        "addEncloureState":false,
                        "btnName":"",
                        "findEnclosurePower":[

                        ]
                    },
                    "circulationRules":"renyi",
                    "processNodeTipForm":{
                        "arriveReminders":[
                            "shortMessage",
                            "mail"
                        ],
                        "UntreatedNum":"40",
                        "UntreatedTime":"minutes",
                        "AutoAlert":[
                            "shortMessage"
                        ]
                    },
                    "formOperates":[
                        {
                            "name":"单行输入框",
                            "key":"1598583241000_12287",
                            "type":"input",
                            "checkedList":[
                                "visibility"
                            ]
                        },
                        {
                            "name":"单选框",
                            "key":"1598583242000_8033",
                            "type":"radio",
                            "checkedList":[
                                "visibility"
                            ]
                        },
                        {
                            "name":"日期",
                            "key":"1598583244000_29500",
                            "type":"date",
                            "checkedList":[
                                "visibility"
                            ]
                        }
                    ]
                },
                "prevId":"SID-2bbfe3a8-4c3b-a143-e644-6193fe141426",
                "childNode":{
                    "nodeId":"SID-8c2cef4a-450c-a248-8328-bfaae369232a",
                    "type":"approver",
                    "content":"发起人自选",
                    "properties":{
                        "title":"审批人212",
                        "nodeName":"审批人",
                        "assigneeType":"optional",
                        "approverSetSwitch":false,
                        "memberSet":[
                            {
                                "deptId":38165,
                                "nickName":"哈哈哈哈哈哈哈",
                                "userId":440815,
                                "userName":"mofei"
                            }
                        ],
                        "memberSetOptional":[
                            {
                                "deptId":null,
                                "nickName":"",
                                "userId":null,
                                "userName":null
                            }
                        ],
                        "fillSwitch":false,
                        "ccSetSwitch":false,
                        "approvalOpinions":"required",
                        "backOff":{
                            "Switch":false,
                            "backOffState":false,
                            "backOffNode":"",
                            "btnName":"",
                            "surebackOffNode":""
                        },
                        "transfer":{
                            "Switch":false,
                            "transferState":false,
                            "btnName":"",
                            "memberSet":[
                                {
                                    "deptId":38165,
                                    "nickName":"哈哈哈哈哈",
                                    "userId":440815,
                                    "userName":"mofei"
                                }
                            ]
                        },
                        "addApproverPerson":{
                            "Switch":false,
                            "addApproverState":false,
                            "btnName":"",
                            "memberSet":[
                                {
                                    "deptId":38165,
                                    "nickName":"哈哈哈哈哈哈",
                                    "userId":440815,
                                    "userName":"mofei"
                                }
                            ]
                        },
                        "addCcPerson":{
                            "Switch":false,
                            "addCcState":false,
                            "btnName":"",
                            "memberSet":[
                                {
                                    "deptId":38165,
                                    "nickName":"莫菲",
                                    "userId":440815,
                                    "userName":"mofei"
                                }
                            ]
                        },
                        "addEnclosurePerson":{
                            "Switch":false,
                            "addEncloureState":false,
                            "btnName":"",
                            "findEnclosurePower":[

                            ]
                        },
                        "circulationRules":"",
                        "processNodeTipForm":{
                            "arriveReminders":[

                            ],
                            "UntreatedNum":"",
                            "UntreatedTime":"",
                            "AutoAlert":[

                            ]
                        },
                        "formOperates":[
                            {
                                "name":"",
                                "type":"",
                                "key":"",
                                "checkedList":[
                                    "visibility",
                                    "write"
                                ]
                            }
                        ]
                    },
                    "prevId":"SID-990e8b6a-68d1-dcf9-9ad1-00f8d2ccdc6a"
                }
            }
        }
    }
}

(2)初步格式化json,获取到最外层的JavaBean与其对应的字段名

紧接着,我们需要对json传中一些共性的东西进行分析,这里可以很容易看出,在后台进行解析这条json串时我们需要使用递归的思想对这一条json串进行解析,这里我推荐一个json自动格式化网站
json格式化

{
    "type":"start",
    "content":"所有人",
    "properties":Object{...},
    "nodeId":"SID-55cf0a21-2ebc-febe-dc71-f5a629374be6",
    "childNode":{
        "type":"fill",
        "content":"发起人自选",
        "properties":Object{...},
        "nodeId":"SID-6745bda6-55fd-9029-ac2e-b6bf38e756db",
        "prevId":"SID-55cf0a21-2ebc-febe-dc71-f5a629374be6",
        "childNode":{
            "type":"fill",
            "content":"发起人自选",
            "properties":Object{...},
            "nodeId":"SID-2bbfe3a8-4c3b-a143-e644-6193fe141426",
            "prevId":"SID-6745bda6-55fd-9029-ac2e-b6bf38e756db",
            "childNode":{
                "nodeId":"SID-990e8b6a-68d1-dcf9-9ad1-00f8d2ccdc6a",
                "type":"approver",
                "content":"发起人自选",
                "properties":Object{...},
                "prevId":"SID-2bbfe3a8-4c3b-a143-e644-6193fe141426",
                "childNode":{
                    "nodeId":"SID-8c2cef4a-450c-a248-8328-bfaae369232a",
                    "type":"approver",
                    "content":"发起人自选",
                    "properties":Object{...},
                    "prevId":"SID-990e8b6a-68d1-dcf9-9ad1-00f8d2ccdc6a"
                }
            }
        }
    }
}

这里我们可以看到,这一条Json串中有一些共性的东西,这些便是最外层JavaBean对象中对用的字段

(3)最外层Json串对应得JavaBean实体类

/**
  * Copyright 2020 bejson.com 
  */
package com.activiti.domain;

/**
 * Auto-generated: 2020-08-28 16:44:47
 *
 * @author bejson.com (i@bejson.com)
 * @website http://www.bejson.com/java2pojo/
 *
 * 解析流程Json获取相关的信息
 */
public class JsonProcessRootBean {

    /**
     * 节点类型start
     */
    private String type;
    /**
     * 节点对应的内容
     */
    private String content;
    /**
     * 节点属性
     */
    private Properties properties;
    /**
     * 节点id
     */
    private String nodeId;

    /**
     * 上一任务节点的id
     */
    private String prevId;
    public void setType(String type) {
         this.type = type;
     }
     public String getType() {
         return type;
     }

    public void setContent(String content) {
         this.content = content;
     }
     public String getContent() {
         return content;
     }

    public void setProperties(Properties properties) {
         this.properties = properties;
     }
     public Properties getProperties() {
         return properties;
     }

    public void setNodeId(String nodeId) {
         this.nodeId = nodeId;
     }
     public String getNodeId() {
         return nodeId;
     }

    public String getPrevId() {
        return prevId;
    }

    public void setPrevId(String prevId) {
        this.prevId = prevId;
    }

    @Override
    public String toString() {
        return "JsonProcessRootBean{" +
                "type='" + type + '\'' +
                ", content='" + content + '\'' +
                ", properties=" + properties +
                ", nodeId='" + nodeId + '\'' +
                ", prevId='" + prevId + '\'' +
                '}';
    }
}

2、仔细刨析每一层中共性的细节,发现properties这个字段也能够封装成一个实体类

(1)properties字段对应的json

{
    "type":"start",
    "content":"所有人",
    "properties":Object{...},
    "nodeId":"SID-55cf0a21-2ebc-febe-dc71-f5a629374be6",
    "childNode":{
        "type":"fill",
        "content":"发起人自选",
        "properties":{
            "title":"填报人",
            "menbers":Object{...},
            "userOptional":true,
            "nodeName":"填报人",
            "fillSetSwitch":false,
            "memberSet":Array[1],
            "memberSetOptional":Array[1],
            "circulationRules":"",
            "processNodeTipForm":Object{...},
            "formOperates":Array[1]
        },
        "nodeId":"SID-6745bda6-55fd-9029-ac2e-b6bf38e756db",
        "prevId":"SID-55cf0a21-2ebc-febe-dc71-f5a629374be6",
        "childNode":{
            "type":"fill",
            "content":"发起人自选",
            "properties":Object{...},
            "nodeId":"SID-2bbfe3a8-4c3b-a143-e644-6193fe141426",
            "prevId":"SID-6745bda6-55fd-9029-ac2e-b6bf38e756db",
            "childNode":{
                "nodeId":"SID-990e8b6a-68d1-dcf9-9ad1-00f8d2ccdc6a",
                "type":"approver",
                "content":"发起人自选",
                "properties":Object{...},
                "prevId":"SID-2bbfe3a8-4c3b-a143-e644-6193fe141426",
                "childNode":{
                    "nodeId":"SID-8c2cef4a-450c-a248-8328-bfaae369232a",
                    "type":"approver",
                    "content":"发起人自选",
                    "properties":Object{...},
                    "prevId":"SID-990e8b6a-68d1-dcf9-9ad1-00f8d2ccdc6a"
                }
            }
        }
    }
}

通过json串我们可以看出,Properties这个JavaBean对象包括Menber、ProcessNodeTipForm的JavaBean对象,包含List<MemberSet>、List<MemberSetOptional>、List<FormOperates>这里只做流程相关的操作,表单Form的砍掉三个集合

(2)Properties对应的JavaBean对象

/**
  * Copyright 2020 bejson.com 
  */
package com.activiti.domain;
import java.util.List;
import java.util.Set;

/**
 * Auto-generated: 2020-08-28 16:44:47
 *
 * @author bejson.com (i@bejson.com)
 * @website http://www.bejson.com/java2pojo/
 */
public class Properties {

    /**
     * 当前属性的title
     */
    private String title;
    /**
     * 审批人部门,有时只传部门信息,只传部门信息,没有用户信息,整个
     */
    private Menbers menbers;
    /**
     * 用户的操作选择
     */
    private boolean userOptional;
    /**
     * 节点名
     */
    private String nodeName;
    /**
     * 是否填充
     */
    private boolean fillSetSwitch;
    /**
     * 流程自己设置的负责人
     */
    private Set<MemberSet> memberSet;
    /**
     * 发起人自选
     */
    private Set<MemberSetOptional> memberSetOptional;
    /**
     *
     */
    private String circulationRules;
    private ProcessNodeTipForm processNodeTipForm;
    public void setTitle(String title) {
         this.title = title;
     }
     public String getTitle() {
         return title;
     }

    public void setMenbers(Menbers menbers) {
         this.menbers = menbers;
     }
     public Menbers getMenbers() {
         return menbers;
     }

    public void setUserOptional(boolean userOptional) {
         this.userOptional = userOptional;
     }
     public boolean getUserOptional() {
         return userOptional;
     }

    public void setNodeName(String nodeName) {
         this.nodeName = nodeName;
     }
     public String getNodeName() {
         return nodeName;
     }

    public void setFillSetSwitch(boolean fillSetSwitch) {
         this.fillSetSwitch = fillSetSwitch;
     }
     public boolean getFillSetSwitch() {
         return fillSetSwitch;
     }

    public Set<MemberSet> getMemberSet() {
        return memberSet;
    }

    public void setMemberSet(Set<MemberSet> memberSet) {
        this.memberSet = memberSet;
    }

    public Set<MemberSetOptional> getMemberSetOptional() {
        return memberSetOptional;
    }

    public void setMemberSetOptional(Set<MemberSetOptional> memberSetOptional) {
        this.memberSetOptional = memberSetOptional;
    }

    public void setCirculationRules(String circulationRules) {
         this.circulationRules = circulationRules;
     }
     public String getCirculationRules() {
         return circulationRules;
     }

    public void setProcessNodeTipForm(ProcessNodeTipForm processNodeTipForm) {
         this.processNodeTipForm = processNodeTipForm;
     }
     public ProcessNodeTipForm getProcessNodeTipForm() {
         return processNodeTipForm;
     }

    @Override
    public String toString() {
        return "Properties{" +
                "title='" + title + '\'' +
                ", menbers=" + menbers +
                ", userOptional=" + userOptional +
                ", nodeName='" + nodeName + '\'' +
                ", fillSetSwitch=" + fillSetSwitch +
                ", memberSet=" + memberSet +
                ", memberSetOptional=" + memberSetOptional +
                ", circulationRules='" + circulationRules + '\'' +
                ", processNodeTipForm=" + processNodeTipForm +
                '}';
    }
}

(3)MemberSet、FormOperates的Java实体类对应为

MemberSet

/**
  * Copyright 2020 bejson.com 
  */
package cmcc.it.project.light.manage.domain.processjson;

/**
 * Auto-generated: 2020-08-28 16:44:47
 *  根据前端传入的json封装的JavaBean实体对象,审批人信息
 * @author bejson.com (i@bejson.com)
 * @website http://www.bejson.com/java2pojo/
 */
public class MemberSet {

    /**
     * 流程设置审批人的部门id
     */
    private String deptId;
    /**
     * 用户的别名
     */
    private String nickName;
    /**
     * 用户的用户id
     */
    private String userId;
    /**
     * 用户名
     */
    private String userName;

    public String getDeptId() {
        return deptId;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    @Override
    public String toString() {
        return "MemberSet{" +
                "deptId='" + deptId + '\'' +
                ", nickName='" + nickName + '\'' +
                ", userId='" + userId + '\'' +
                ", userName='" + userName + '\'' +
                '}';
    }
}

FormOperates

package cmcc.it.project.light.manage.domain.processjson;

import java.util.List;

/**
 * @author zhudunfeng
 * @date 2020/9/4 9:45
 * 解析json
 */
public class FormOperates {
    private String name;
    private String key;
    private String type;
    private List<String> checkedList;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public List<String> getCheckedList() {
        return checkedList;
    }

    public void setCheckedList(List<String> checkedList) {
        this.checkedList = checkedList;
    }

    @Override
    public String toString() {
        return "FormOperates{" +
                "name='" + name + '\'' +
                ", key='" + key + '\'' +
                ", type='" + type + '\'' +
                ", checkedList=" + checkedList +
                '}';
    }
}

这样对json不断进行分析与封装

(4)json生成javaBean推荐工具

这里推荐大家用自动json生成JavaBean对象的工具json.cn

3、使用fastJson手动解析json对JavaBean对象进行赋值

 	/**
 	*作者使用springboot作为测试基础框架
 	*需要引入fastJson
 	*/
   	@Test
    public void parsejsonProcessRootBean() {
       
        String modelEditorJson ="这里填入我开头写的json串";
        List<JsonProcessRootBean> jsonProcessRootBeanList = new ArrayList<>();
        String childNode = modelEditorJson;
        while (null != childNode && !"".equals(childNode)) {
            try {
                JsonProcessRootBean jsonProcessRootBean = new JsonProcessRootBean();
                //流程json
                JSONObject jsonObject = JSONObject.parseObject(childNode);
                //开始装配流程节点数据
                jsonProcessRootBean.setNodeId(jsonObject.get("nodeId").toString());
                jsonProcessRootBean.setType(jsonObject.get("type").toString());
                jsonProcessRootBean.setContent(jsonObject.get("content").toString());
                //节点的变量名
                jsonProcessRootBean.setAssignee(jsonObject.get("assignee").toString());
                //会签节点的变量名
                if (jsonObject.get("assigneeList") != null) {
                    jsonProcessRootBean.setAssigneeList(jsonObject.get("assigneeList").toString());
                }

                //发起节点没有prevId属性,其他节点都有prevId属性
                if (jsonObject.get("prevId") != null) {
                    jsonProcessRootBean.setPrevId(jsonObject.get("prevId").toString());
                }
                //开始解析当前节点的人员数据
                //1、获取properties属性值
                JSONObject propertiesObj = JSONObject.parseObject(jsonObject.get("properties").toString());
                Properties properties = new Properties();
                if (null != propertiesObj && !"".equals(propertiesObj)) {
                    properties.setTitle(propertiesObj.get("title").toString());
                    Object userOptional = propertiesObj.get("userOptional");
                    if (userOptional != null) {
                        properties.setUserOptional((Boolean)userOptional);
                    }
                    Object fillSetSwitch = propertiesObj.get("fillSetSwitch");
                    if (fillSetSwitch != null) {
                        properties.setFillSetSwitch((Boolean)fillSetSwitch);
                    }
                    properties.setNodeName(propertiesObj.get("nodeName").toString());
                    //当前任务节点是否为会签节点
                    properties.setCountersign(propertiesObj.get("countersign").toString());

                    List<MemberSet> processNodeMemberSet = new ArrayList<>();
                    List<MemberSetOptional>  processNodeMemberSetOptional=new ArrayList<>();
                    List<DeptSet>  processNodeDeptSet=new ArrayList<>();
                    List<FormOperates> processNodeFormOperatesSet=new ArrayList<>();

                    //获取memberSet属性值,转换为JSONArray数组类型
                    JSONArray memberSetArray = JSONArray.parseArray(propertiesObj.get("memberSet").toString());
                    Object memberSetOptional = propertiesObj.get("memberSetOptional");
                    JSONArray memberSetOptionalArray=null;
                    if (memberSetOptional != null&&!"".equals(memberSetOptional)) {
                        memberSetOptionalArray = JSONArray.parseArray(memberSetOptional.toString());
                    }
                    Object deptSet = propertiesObj.get("deptSet");
                    JSONArray deptSetArray=null;
                    if (deptSet != null&&!"".equals(deptSet)) {
                        deptSetArray= JSONArray.parseArray(deptSet.toString());
                    }

                    Object formOperatesList = propertiesObj.get("formOperates");
                    JSONArray formOperatesArray=null;
                    if (formOperatesList != null) {
                        formOperatesArray= JSONArray.parseArray(formOperatesList.toString());
                    }

                    //如果当前节点有选择的人员数据
                    if(memberSetArray != null && memberSetArray.size() >= 0){
                        //遍历memberSet数组
                        for (Object obj : memberSetArray) {
                            JSON memberSetJson = (JSON) obj;
                            //转换为实体类对象
                            MemberSet processNodeMember = JSON.parseObject(memberSetJson.toJSONString(),
                                    new TypeReference<MemberSet>() {
                                    });
                            processNodeMemberSet.add(processNodeMember);
                        }
                    }
                    //如果是发起人自选
                    if(memberSetOptionalArray != null && memberSetOptionalArray.size() >= 0){
                        //遍历memberSetOptional数组
                        for (Object obj : memberSetOptionalArray) {
                            JSON memberSetOptionalJson = (JSON) obj;
                            //转换为实体类对象
                            MemberSetOptional processNodeMemberOptional = JSON.parseObject(memberSetOptionalJson.toJSONString(),
                                    new TypeReference<MemberSetOptional>() {
                                    });
                            processNodeMemberSetOptional.add(processNodeMemberOptional);
                        }
                    }

                    //部门信息
                    if(deptSetArray!=null&&deptSetArray.size()>0){
                        //遍历deptSetArray数组
                        for (Object obj : deptSetArray) {
                            JSON deptSetJson = (JSON) obj;
                            //转换为实体类对象
                            DeptSet deptSet1 = JSON.parseObject(deptSetJson.toJSONString(),
                                    new TypeReference<DeptSet>() {
                                    });
                            processNodeDeptSet.add(deptSet1);
                        }
                    }

                    //formOperates
                    if(formOperatesArray!=null&&formOperatesArray.size()>0){
                        //遍历formOperatesArray数组
                        for (Object obj : formOperatesArray) {
                            JSON formOperatesJson= (JSON) obj;
                            //转换为实体类
                            FormOperates formOperates = JSON.parseObject(formOperatesJson.toJSONString(),
                                    new TypeReference<FormOperates>() {
                                    });
                            processNodeFormOperatesSet.add(formOperates);
                        }
                    }


                    properties.setMemberSet(processNodeMemberSet);
                    properties.setMemberSetOptional(processNodeMemberSetOptional);
                    properties.setDeptSet(processNodeDeptSet);
                    properties.setFormOperates(processNodeFormOperatesSet);
                }
                jsonProcessRootBean.setProperties(properties);
                jsonProcessRootBeanList.add(jsonProcessRootBean);
                //更新childNode
                childNode = "";
                Object childNodeObj = jsonObject.get("childNode");
                //有下一节点
                if (childNodeObj != null) {
                    childNode = JSON.toJSONString(jsonObject.get("childNode"));
                }
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }

//需要我们封装的每一javabean都重新toString()	System.out.println(jsonProcessRootBeanList.get(0).toString());       
    }

4.使用fastJson自动解析json对JavaBean对象进行赋值

上面的的json解析完全是手动解析,大家也可以使用自动解析来进行,但这种需要大家完全封装好JavaBean对象,k-v一一对应,转换后的k如果原来是大写的,需要我们使用@JSONField指定,否则就会自动转为小写

	@JSONField(name = "UntreatedNum")
    private String UntreatedNum;
 	@Test
    public void parsejsonProcessRootBean(String modelId) {
      	String json="这里填入我开头写的json串";
        JsonProcessRootBean jsonProcessRootBean = JSONObject.parseObject(json, JsonProcessRootBean.class);
       
       //注意:封装的javabean需要重新toString()
        System.out.println(jsonProcessRootBean);
       
    }

请大家提出意见,进行优化

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值