博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
json对象的封装与解析
阅读量:7098 次
发布时间:2019-06-28

本文共 2080 字,大约阅读时间需要 6 分钟。

一、解析json对象

表结构信息对象,json格式,名称为tableObj

  *  {
  *   "tableName":"t_res",                              //表名称
  *   "columnInfo":[           //字段信息
  *            {
  *           "columnName":"id",            //字段名
  *           "dataTypeName":"varchar",     //字段类型
  *           "isKey":true,                 //是否为主键,true代表是主键,false代表不是
  *           "isAutoIncrement":true,       //是否自增,true代表自增,false代表不自增
  *           "isNull":0,                   //是否为空,1代表可以为空,0代表不能为空
  *           "precision":5,                //精度
  *           "defaultValue":"10"           //默认值
  *           "scale":2                     //小数位数         
  *          }
  *           ]
  *  }

try{

   String name = tableObj.get("tableName").toString();                //获得表名
   JSONArray columnInfo = tableObj.getJSONArray("columnInfo");        //获得字段描述json数组
   int size = columnInfo.length();                                    //json数组长度
   for(int i=0;i<size;i++){
    JSONObject info=columnInfo.getJSONObject(i);
    String cloumn = info.getString("columnName");                  //获取字段名
    String dataType = info.getString("dataTypeName");              //获取字段类型
    boolean isKey = info.getBoolean("isKey");                      //获取字段是否为主键
    boolean isAutoIncrement = info.getBoolean("isAutoIncrement");  //获取字段是否自增
    int isNull = info.getInt("isNull");                            //获取字段是否为空
    int precision = info.getInt("precision");                      //获取字段类型精度
    String defaultValue = info.getString("defaultValue");          //获取字段默认值

}

二、封装json对象

 /**
  * 根据表名获取表结构信息
  * @param tableName 表名
  * @return 表结构信息对象 Json格式
  *  {
  *   "tableName":"t_res",                              //表名称
  *   "columnInfo":[           //字段信息
  *            {
  *           "columnName":"id",            //字段名
  *           "dataTypeName":"varchar",     //字段类型
  *           "isKey":true,                 //是否为主键,true代表是主键,false代表不是
  *           "isAutoIncrement":true,       //是否自增,true代表自增,false代表不自增
  *           "isNull":0,                   //是否为空,1代表可以为空,0代表不能为空
  *           "precision":5,                //精度
  *           "defaultValue":"10"           //默认值
  *           "scale":2                     //小数位数         
  *          }
  *           ]
  *  } 
  */    

  JSONObject tableInfoObj = new JSONObject();

  StringBuffer sb = new StringBuffer();  

  sb.append("{"+"'tableName':"+tableName+","+"'columnInfo':"+"[");

  sb.append("{"+"'columnName':"+"'"+cloumn+"'"+","

      +"'dataTypeName':"+"'"+dataType+"'"+","
      +"'isKey':"+isKey+","
      +"'precision':"+precision+","
      +"'defaultValue':"+"'"+defaultValue+"'"+","
      +"'isNull':"+isNull+","
      +"'isAutoIncrement':"+autoIncrement+","
      +"'scale':"+scale+"}"+","); 

   sb.deleteCharAt(sb.length()-1);

   sb.append("]");
   sb.append("}");                                 //json字符串到此完成  
   System.out.println(sb.toString());
   tableInfoObj = new JSONObject(sb.toString());   //将json字符串转化为jsonObject对象

   return tableInfoObj;

 

转载地址:http://qxhql.baihongyu.com/

你可能感兴趣的文章
bzoj4395[Usaco2015 dec]Switching on the Lights*
查看>>
JAVA 数据库操作工具类----sqllite
查看>>
AnyChat在打开音频设备的同时会自动发布视频数据吗?
查看>>
响应式卡片抽奖插件 CardShow
查看>>
通过 JS 判断页面是否有滚动条的简单方法
查看>>
你不需要 jQuery,但你需要一个 DOM 库
查看>>
HashMap源码浅析
查看>>
SQLite3-1
查看>>
gitlab 服务器的搭建与使用全过程(二)
查看>>
面向对象编程之多态的使用
查看>>
使用 Satis 搭建私有的 Composer 包仓库
查看>>
http方式访问svn
查看>>
PULLING CHANGES
查看>>
算法----(4)快速排序
查看>>
Python菜鸟之路:Django 数据库操作进阶F和Q操作
查看>>
php面试1
查看>>
Android访问通讯录和添加联系人
查看>>
043、data-packed volume container (2019-03-06 周三)
查看>>
Java反射机制小结和实际操作
查看>>
一些概念
查看>>