工具阿里巴巴的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