json对象的封装与解析
一、解析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;
json对象的封装与解析的更多相关文章
- go对json对象的生成和解析
https://blog.csdn.net/benben_2015/article/details/78917374
- javascript json对象操作(基本增删改查)
/** * Json对象操作,增删改查 * * @author lellansin * @blog www.lellansin.com * @version 0.1 * * 解决一些常见的问题 * g ...
- java对象与json对象间的相互转换
工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如 ...
- java对象与json对象之间的转换
jar包:import net.sf.json.JSONObject; 1.解析json字符串 将json字符串转换为json对象,然后再解析json对象:.JSONObjectjsonObject ...
- 字符串和JSON对象互转的方法
采用Ajax的项目开发过程中,经常需要将JSON格式的字符串返回到前端,前端解析成JS对象(JSON ).字符串转JSON对象 1.eval方式解析.function strToJson(str){ ...
- Android JSON、GSON、FastJson的封装与解析
声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种 ...
- 如何利用.Net内置类,解析未知复杂Json对象
如何利用.Net内置类,解析未知复杂Json对象 如果你乐意,当然可以使用强大的第三方类库Json.Net中的JObject类解析复杂Json字串 . 我不太希望引入第三方类库,所以在.Net内置类J ...
- 解析JSON对象与字符串之间的相互转换
在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台 接受的时候Request多个很麻烦 ...
- [知了堂学习笔记]_JSON数据操作第2讲(JSON的封装与解析)
上一讲为大家讲了什么是JSON,那么这一讲为大家带来了在WEB项目中JSON的用法,也就是JSON的封装与解析. 此图是数据库中的部分内容 一.JSON封装 所谓的JSON封装,指的是在Servlet ...
随机推荐
- visio 2013 破解工具 - KMSpico
背景:环境是 win7, 64 bit装了 visio 2013 , 可以却不能用它来画图,在网上找了一些破解工具,大都不能解决问题.网上不靠谱的广告型文章太多了,比较头痛. 所幸,终于找到正确的破解 ...
- 获取extjs text列修改过 数据
ExtJS中表格的特性简介 表格由类Ext.grid.GridPanel定义,继承自Ext.Panel,xtype为grid 表格的列信息由Ext.grid.ColumnModel定义 表格的数据存储 ...
- $()和getElementById()的区别
jQuery的成功多归功于其强大的选择器. 然而,相信不少初学jQuery的同学都会遇到下面的问题. 在javascript下,我们可以根据getElementById()来获取页面元素.如下: va ...
- RequireJS 和 SeaJS
RequireJS SeaJS CMD规范 CommonJS的规范: 根据CommonJS规范,一个单独的文件就是一个模块.加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的 ...
- BootstrapTable+KnockoutJS
BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查 前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用 ...
- 如何取消一个本地svn目录与svn的联系(即恢复原有图标等)
在使用svn 的时候容易手抖错选update地址,使其目录所有同级文件夹上出现蓝色“?”图样,非常烦人,下面记录一下解决方案. 首先在该目录下打开同级文件件,工具→文件夹选项→查看→隐藏文件和文件夹→ ...
- delphi 7 信息对话框的按钮屏蔽键盘操作,只允许鼠标点击
本问题由 delphi 学友QQ群中一位群友提出,个人觉得是一个好问题. 本教程源码下载 本教程面向新手,希望大家能从中学到除了本功能之外的真正编程技能. 本功能的实现原理,用窗口当对话框的界面,在界 ...
- 利用 Android Studio 和 Gradle 打包多版本APK
在项目开发过程中,经常会有需要打包不同版本的 APK 的需求. 比如 debug版,release版,dev版等等. 有时候不同的版本中使用到的不同的服务端api域名也不相同. 比如 debug_ap ...
- poj 3269 Building A New Barn
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...
- Netty那点事: 概述, Netty中的buffer, Channel与Pipeline
Netty那点事(一)概述 Netty和Mina是Java世界非常知名的通讯框架.它们都出自同一个作者,Mina诞生略早,属于Apache基金会,而Netty开始在Jboss名下,后来出来自立门户ne ...