工具阿里巴巴的fastjson包

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

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

例:

  1. [
    {
    "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"
    }
    ]
    }
    ]
  2.  
  3. 首先定义javabean,由内而外
    内层javabean
  1. package bao;
  2.  
  3. public class Column {
  4.  
  5. String key;
  6. String header;
  7. String width;
  8. boolean allowSort;
  9. boolean hidden;
  10.  
  11. public String getKey() {
  12. return key;
  13. }
  14.  
  15. public void setKey(String key) {
  16. this.key = key;
  17. }
  18.  
  19. public String getHeader() {
  20. return header;
  21. }
  22.  
  23. public void setHeader(String header) {
  24. this.header = header;
  25. }
  26.  
  27. public String getWidth() {
  28. return width;
  29. }
  30.  
  31. public void setWidth(String width) {
  32. this.width = width;
  33. }
  34.  
  35. public boolean getAllowSort() {
  36. return allowSort;
  37. }
  38.  
  39. public void setAllowSort(boolean allowSort) {
  40. this.allowSort = allowSort;
  41. }
  42.  
  43. public boolean getHidden() {
  44. return hidden;
  45. }
  46.  
  47. public void setHidden(boolean hidden) {
  48. this.hidden = hidden;
  49. }
  50.  
  51. @Override
  52. public String toString() {
  53. return "Column [key=" + key + ", header=" + header + ", width=" + width + ", allowSort=" + allowSort
  54. + ", hidden=" + hidden + "]";
  55. }
  56.  
  57. }

  

  1. 外层javabean
  1. package com.imply.json;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.LinkedHashMap;
  5. import java.util.List;
  6.  
  7. public class Query {
  8.  
  9. String id;
  10. String key;
  11. String tableName;
  12. String className;
  13. private List<Column> column ;
  14.  
  15. public String getId() {
  16. return id;
  17. }
  18.  
  19. public void setId(String id) {
  20. this.id = id;
  21. }
  22.  
  23. public String getKey() {
  24. return key;
  25. }
  26.  
  27. public void setKey(String key) {
  28. this.key = key;
  29. }
  30.  
  31. public String getTableName() {
  32. return tableName;
  33. }
  34.  
  35. public void setTableName(String tableName) {
  36. this.tableName = tableName;
  37. }
  38.  
  39. public String getClassName() {
  40. return className;
  41. }
  42.  
  43. public void setClassName(String className) {
  44. this.className = className;
  45. }
  46.  
  47. public List<Column> getColumn() {
  48. return column;
  49. }
  50.  
  51. public void setColumn(List<Column> column) {
  52. this.column = column;
  53. }
  54.  
  55. @Override
  56. public String toString() {
  57. return "Query [id=" + id + ", key=" + key + ", tableName=" + tableName + ", className=" + className
  58. + ", columns=" + column + "]";
  59. }
  60.  
  61. }
  1.  

  

  1. 验证类
  1. package com.imply.json;
  2.  
  3. import java.lang.reflect.Field;
  4. import java.lang.reflect.Modifier;
  5. import java.util.List;
  6. import java.util.Map;
  7.  
  8. import com.alibaba.fastjson.JSON;
  9.  
  10. public class Tdef {
  11.  
  12. public static void main(String[] args) {
  13. 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\"}]}]";
  14. List<Query> queries = JSON.parseArray(str, Query.class);
  15.  
  16. System.out.println();
  17. queries.stream().forEach(x->{
  18. System.out.print(x.getId());
  19. System.out.print(x.getKey());
  20. System.out.print(x.getTableName());
  21. System.out.print(x.getClassName());
  22.  
  23. x.getColumn().stream().forEach(y->{
  24. System.out.print(y.getKey());
  25. System.out.print(y.getHeader());
  26. System.out.print(y.getWidth());
  27. });
  28. System.out.println();
  29. });
  30.  
  31. }
  32.  
  33. }

运行结果:

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

2019年4月9日 17:11:36

  1.  

复杂json格式转化为javabean的更多相关文章

  1. (转)json格式转换成javaBean对象的方法

    把json格式转换成javaBean才可以.于是查了一下资料,网上最多的资料就是下面的这种方式: Java code? 1 2 3 4 5 6 7 8 9 String str = "[{\ ...

  2. Json格式转化为string格式

    今天在学习Jsonp的时候,想通过服务端返回一段json数据,因为使用的服务端是NodeJs,那么就需要在js文件中实现返回json.(这里不懂的同学,可以先了解一下NodeJs的基础概念,在这里,我 ...

  3. FastJson学习:JSON格式字符串、JSON对象及JavaBean之间的相互转换

    当前台需要传送一系列相似数据到后端时,可以考虑将其组装成json数组对象,然后转化为json形式的字符串传输到后台 例如: nodes = $('#PmPbsSelect_tree').tree('g ...

  4. FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  5. 快速将对象转化为JSON格式

    1.导入阿里巴巴fastjson包. <!-- fastJson将对象转化为Json对象 --> <dependency> <groupId>com.alibaba ...

  6. 使用CJSON库实现XML与JSON格式的相互转化

    之前完成了一个两个平台对接的项目.由于这两个平台一个是使用json格式的数据,一个是使用xml格式的数据,要实现它们二者的对接就涉及到这两个数据格式的转化,在查阅相关资料的时候发现了这个CJSON库, ...

  7. JSON(三)——java中对于JSON格式数据的解析之json-lib与jackson

    java中对于JSON格式数据的操作,主要是json格式字符串与JavaBean之间的相互转换.java中能够解析JSON格式数据的框架有很多,比如json-lib,jackson,阿里巴巴的fast ...

  8. 转!!JavaBean,List,Map转成json格式

    public class User { private String username; private String password; public String getUsername() { ...

  9. JavaBean,List,Map转成json格式

    public class User { private String username; private String password; public String getUsername() { ...

随机推荐

  1. pheonix从入门到进阶

    别人写的帖子感觉很好,记录一下: https://blog.csdn.net/u013411339/article/details/90657429

  2. js的DOM操作整理(整理)

    js的DOM操作整理(整理) 一.总结 一句话总结: dom操作有用原生js的dom操作,也可以用对js封装过的jquery等插件来更加方便的进行dom操作 1.dom是什么? 对于JavaScrip ...

  3. python创建文件夹方法

    def mkdir(path): # 引入模块 import os # 去除首位空格 path = path.strip() # 去除尾部 \ 符号 path = path.rstrip(" ...

  4. 微信小程序_(表单组件)button组件的使用

    微信小程序表单组件button官方文档 传送门 Learn 一.button组件的使用 一.button组件的使用 size:按钮的大小[默认值default] type:按钮的样式类型[默认值def ...

  5. UCenter网站部署

    搭建LAMP环境部署UCenter LAMP环境: Linux+Apache+mysql+php  用来搭建动态网站或者服务器的开源软件 一.需要安装的软件 [root@tiandong ~]# yu ...

  6. shell编程-定时任务(备份数据库)

    计划任务定时备份,删除等操作: #crontab -e #注意 会区分用户 默认在root用户登录用的是root权限用户的计划任务, 如果想在postgres备份 应使用postgres用户权限, 设 ...

  7. jupyter notebook + MobaXterm Linux端远程部署

    $jupyter notebook --generate-config $python In []: from notebook.auth import passwd In []: passwd() ...

  8. ccf 201612-4 压缩编码(DP)(100)

    ccf 201612-4 压缩编码 问题分析: 解决本问题,首先需要知道哈夫曼编码.参见:哈夫曼编码_百度百科. 这是一个编码问题,似乎可以用哈夫曼编码来解决,但是略有不同的地方在于“每个字符的编码按 ...

  9. 2017年内容营销如何提高ROI转化率

    根据2017 CMI报告显示,有近41%的营销人员今年会实施一系列内容营销战略.作为与用户间长期关系的桥梁, 从品牌化输出到信任感的培育,内容营销的影响力迅猛发展. 本次Focussend从互动集成内 ...

  10. 【React自制全家桶】四、React中state与props的分析与比较

    一.state 1.state的作用 state是React中组件的一个对象.React把用户界面当做是状态机,想象它有不同的状态然后渲染这些状态,可以轻松让用户界面与数据保持一致. React中,更 ...