zoukankan      html  css  js  c++  java
  • 复杂json格式转化为javabean

    工具阿里巴巴的fastjson包

    <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
    </dependency>

    场景:json格式为两层,第一层为数组,第二层object+数组

    例:

    [
    {
    "id": "user_list",
    "key": "id",
    "tableName": "用户列表",
    "className": "cn.dmego.domain.User",
    "column": [
    {
    "key": "rowIndex",
    "header": "序号",
    "width": "50",
    "allowSort": "false"
    },
    {
    "key": "id",
    "header": "id",
    "hidden": "true"
    },
    {
    "key": "name",
    "header": "姓名",
    "width": "100",
    "allowSort": "true"
    }
    ]
    },
    {
    "id": "role_list",
    "key": "id",
    "tableName": "角色列表",
    "className": "cn.dmego.domain.Role",
    "column": [
    {
    "key": "rowIndex",
    "header": "序号",
    "width": "50",
    "allowSort": "false"
    },
    {
    "key": "id",
    "header": "id",
    "hidden": "true"
    },
    {
    "key": "name",
    "header": "名称",
    "width": "100",
    "allowSort": "true"
    }
    ]
    }
    ]


    首先定义javabean,由内而外
    内层javabean类
    package bao;
    
    public class Column {
    
    	String key;
    	String header;
    	String width;
    	boolean allowSort;
    	boolean hidden;
    
    	public String getKey() {
    		return key;
    	}
    
    	public void setKey(String key) {
    		this.key = key;
    	}
    
    	public String getHeader() {
    		return header;
    	}
    
    	public void setHeader(String header) {
    		this.header = header;
    	}
    
    	public String getWidth() {
    		return width;
    	}
    
    	public void setWidth(String width) {
    		this.width = width;
    	}
    
    	public boolean getAllowSort() {
    		return allowSort;
    	}
    
    	public void setAllowSort(boolean allowSort) {
    		this.allowSort = allowSort;
    	}
    
    	public boolean getHidden() {
    		return hidden;
    	}
    
    	public void setHidden(boolean hidden) {
    		this.hidden = hidden;
    	}
    
    	@Override
    	public String toString() {
    		return "Column [key=" + key + ", header=" + header + ", width=" + width + ", allowSort=" + allowSort
    				+ ", hidden=" + hidden + "]";
    	}
    
    }
    

      

    外层javabean类
    package com.imply.json;
    
    import java.util.ArrayList;
    import java.util.LinkedHashMap;
    import java.util.List;
    
    public class Query {
    
        String id;
        String key;
        String tableName;
        String className;
        private  List<Column> column ;
    
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getKey() {
            return key;
        }
    
        public void setKey(String key) {
            this.key = key;
        }
    
        public String getTableName() {
            return tableName;
        }
    
        public void setTableName(String tableName) {
            this.tableName = tableName;
        }
    
        public String getClassName() {
            return className;
        }
    
        public void setClassName(String className) {
            this.className = className;
        }
    
        public List<Column> getColumn() {
            return column;
        }
    
        public void setColumn(List<Column> column) {
            this.column = column;
        }
    
        @Override
        public String toString() {
            return "Query [id=" + id + ", key=" + key + ", tableName=" + tableName + ", className=" + className
                    + ", columns=" + column + "]";
        }
    
    }
    
    
    

      



    验证类
    package com.imply.json;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Modifier;
    import java.util.List;
    import java.util.Map;
    
    import com.alibaba.fastjson.JSON;
    
    public class Tdef {
    
        public static void main(String[] args) {
            String str = "[{"id":"user_list","key":"id","tableName":"用户列表","className":"cn.dmego.domain.User","column":[{"key":"rowIndex","header":"序号","width":"50","allowSort":"false"},{"key":"id","header":"id","hidden":"true"},{"key":"name","header":"姓名","width":"100","allowSort":"true"}]},{"id":"role_list","key":"id","tableName":"角色列表","className":"cn.dmego.domain.Role","column":[{"key":"rowIndex","header":"序号","width":"50","allowSort":"false"},{"key":"id","header":"id","hidden":"true"},{"key":"name","header":"名称","width":"100","allowSort":"true"}]}]";
            List<Query> queries = JSON.parseArray(str, Query.class);
    
            System.out.println();
            queries.stream().forEach(x->{
                System.out.print(x.getId());
                System.out.print(x.getKey());
                System.out.print(x.getTableName());
                System.out.print(x.getClassName());
    
                x.getColumn().stream().forEach(y->{
                    System.out.print(y.getKey());
                    System.out.print(y.getHeader());
                    System.out.print(y.getWidth());
                });
                System.out.println();
            });
    
    
        }
    
    
    }

    运行结果:

    user_listid用户列表cn.dmego.domain.UserrowIndex序号50ididnullname姓名100
    role_listid角色列表cn.dmego.domain.RolerowIndex序号50ididnullname名称100

    2019年4月9日 17:11:36

     
  • 相关阅读:
    opencv图片右转函数
    多项式相加实验代码和报告
    C++下实现同接口下多个类作为参数的调用和传参
    Betsy Ross Problem
    matlab绘制实用日历实例代码
    node-sass 安装卡在 node scripts/install.js 解决办法
    如何管理自己?
    Webstorm 11 注册/破解方法
    解决play-1.4.0在linux或mac下提示No such file or directory的问题
    PlayFramework 1.2.x 在Controller 中识别JSON提交
  • 原文地址:https://www.cnblogs.com/rainersha/p/10678268.html
Copyright © 2011-2022 走看看