json 数据 ,递归处理获取 数据

    /**
     * 获取旧供应商信息
     * @param json
     * @return
     * @throws ActiveRecordException
     */
    public Record getSuppRec(JSONArray json,String suppliersName) throws ActiveRecordException{
        Record supp = null;
        //默认不存在
        if(json == null || json.size() == 0){
            return supp;
        }
        
        String beforeName = " ";
        for (int j = 0; j < json.size(); j++) {
            //获取当前循环的JSON对象
            JSONObject obj = JSONObject.parseObject(json.getString(j));
            //获取BeforeContent信息
            String BeforeContent=obj.getString("BeforeContent");
            //获取afterContent信息
            String afterContent=obj.getString("AfterContent");
            if (StringUtils.notBlank(BeforeContent)){
                //通过beforename查询供应商名称是否存在
                BeforeContent = BeforeContent.replace("
", "");
                String[] nameArray = BeforeContent.split(":");
                beforeName = nameArray[1].trim().substring(0,nameArray[1].length() - 1);
                Record rec = null;
                rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and suppliers_name=?",beforeName);
                if(rec == null){
                    rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and (suppliers_name=? or suppliers_name=?)",BCConvertUtils.bj2qj(beforeName),BCConvertUtils.qj2bj(beforeName));
                }
                if(rec != null){
                    supp = rec;
                    break;
                }
            }
            if (StringUtils.notBlank(afterContent)) {
                //通过aftername查询供应商名称是否存在
                afterContent = afterContent.replace("
", "");
                String[] nameArray = afterContent.split(":");
                beforeName = nameArray[1].trim().substring(0,nameArray[1].length() - 1);
                Record rec = null;
                rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and suppliers_name=?",beforeName);
                if(rec == null){
                    rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and (suppliers_name=? or suppliers_name=?)",BCConvertUtils.bj2qj(beforeName),BCConvertUtils.qj2bj(beforeName));
                }
                if(rec != null){
                    supp = rec;
                    break;
                }
            }
//            if (obj.getString("ProjectName")!=null && (obj.getString("ProjectName").startsWith("名称变更") || obj.getString("ProjectName").equals("企业名称")
//                    || obj.getString("ProjectName").equals("名称"))) {
//                if(obj.getString("BeforeContent").lastIndexOf("企业名称")>-1)
//                {
//                    String[] array = BCConvertUtils.qj2bj(obj.getString("AfterContent")).split(";");
//                    for(String name:array)
//                    {
//                        if(name.lastIndexOf("企业名称")>-1)
//                        {
//                            name = name.replace("
", "");
//                            String[] nameArray = name.split(":");
//                            beforeName = nameArray[1].trim();
//                        }
//                    }
//                }
//                else
//                {
//                    beforeName = obj.getString("BeforeContent");
//                }
//                //通过beforename查询供应商名称是否存在
//                Record rec = null;
//                rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and suppliers_name=?",beforeName);
//                if(rec == null){
//                    rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and (suppliers_name=? or suppliers_name=?)",BCConvertUtils.bj2qj(beforeName),BCConvertUtils.qj2bj(beforeName));
//                }
//                if(rec != null){
//                    supp = rec;
//                    break;
//                }
//            }
        }
        return supp;
    }
    /**
     * 这是以变更之前供应商名字来查的数据 (beforeSuppliersName 用改前的名字,来找他,改后的名字)
     * 获取工商接口中改动后的供应商名称
     * @param json 工商接口返回的数据
     * @param oldSuppliersName 审核的供应商名字(未改动之前)
     * @return
     * @throws ActiveRecordException
     */
    public static String getNewSuppRec(JSONArray json ,String  beforeSuppliersName) throws ActiveRecordException{
        String afterContent= beforeSuppliersName;
         boolean flag = false;
        for (int j = 0; j < json.size();j++) {
            // 获取当前的循环的JSON对象
            JSONObject obj = JSONObject.parseObject(json.getString(j));
            // 获取当前循环的未改动以前的数据
            String beforeContent=obj.getString("BeforeContent");
            // 如果当前循环的未改动以前的数据含 审核的供应商名字
            if (beforeContent.contains(beforeSuppliersName)) {
                // 则获取当前循环改动后的数据
                afterContent=obj.getString("AfterContent");
                flag = true;
                break;
            }
           
        }
        // 标志位为false,直接结束
        if (!flag) {
            return afterContent ;
        }
        
        return getNewSuppRec( json , afterContent);
    }
    
    
    public static void main(String[] args) throws ActiveRecordException {
        String  lo =  "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门3垒智建设有限公司,","BeforeContent":"名称:厦门2垒智建设有限公司,"}";
        String  lo1 =  "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门2垒智建设有限公司,","BeforeContent":"名称:厦门1垒智建设有限公司,"}";
        String  lo2 =  "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门1垒智建设有限公司,","BeforeContent":"名称:厦门垒智建设有限公司,"}";
        
//        String  lo3 =  "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门4垒智建设有限公司,","BeforeContent":"名称:厦门3垒智建设有限公司,"}";
//        String  lo4 =  "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门5垒智建设有限公司,","BeforeContent":"名称:厦门4垒智建设有限公司,"}";
        JSONObject json = JSONObject.parseObject(lo);
        JSONObject json1 = JSONObject.parseObject(lo1);
        JSONObject json2 = JSONObject.parseObject(lo2);
//        JSONObject json3 = JSONObject.parseObject(lo3);
//        JSONObject json4 = JSONObject.parseObject(lo4);
        
        JSONArray jsonArray = new  JSONArray();
        jsonArray.add(json);
        
        jsonArray.add(json1);
        jsonArray.add(json2);
//        jsonArray.add(json3);
//        jsonArray.add(json4);
        
        // 这是用改前的名字,来找他,改后的名字
        
        String abc = getNewSuppRec(jsonArray,"厦门垒智建设有限公司");
        // abc  与 厦门垒智建设有限公司  这个厦门垒智建设有限公司  是最新的
        // abc  与 厦门垒智建设有限公司  这个厦门垒智建设有限公司  是不一样最新的
        
        String bc = getNewSuppRec(jsonArray,"厦门垒智建设有限公司");
        // 如果 abc 为空,说明 
        
            
            
        
        System.out.println(abc);
        
    }
    
原文地址:https://www.cnblogs.com/xiaoniuniu886/p/11376840.html