JSON解析及数据库操作实战篇
代码:
JSONObject json = JSONObject.parseObject(ubody);//得到整个json
JSONObject AutoTable=json.getJSONObject("AutoTable");//得到AutoTable
JSONArray item2=AutoTable.getJSONArray("Item");//得到Item数组(里面存对象),下一层即为表对象
/*--------------------------------------------2个map数组,一个存表名,一个存字段;存表名和存字段的都是集合map----------------------------------------------------------------------- */
Map<String, String>[] mapsDetail=new Map[item2.size()]; //map类型的数组,存表中的具体字段及字段的值
Map<String, String>[] mapsName=new Map[item2.size()]; //map类型的数组,存表名
for(int i=0;i<item2.size();i++){ //item2为json数组,数组中为对象
Map<String, String> paramDetail=new HashMap<>();
Map iteamName=new HashMap(); //存表名称
JSONObject jsonItem=(JSONObject)item2.get(i);
String jsonname=jsonItem.getString("name");//得到表名称
JSONArray jsonItemArray=jsonItem.getJSONArray("Item");//得到表整个字段
log.info("--------------------------得到表名称"+jsonname);
log.info("--------------------------得到表整个字段"+jsonItemArray);
for(Iterator iterator=jsonItemArray.iterator();iterator.hasNext();){
JSONObject jsonObject=(JSONObject)iterator.next();
String name=jsonObject.getString("name");
String value=jsonObject.getString("value");
paramDetail.put(name, value);
log.info("--------------------------name"+name);
log.info("--------------------------name"+value);
}
iteamName.put(i, jsonname); //存表名称
mapsName[i]=iteamName;//数组中存map,表名称
mapsDetail[i]=paramDetail;//数组中存map,具体字段
}
/*--------------------------------------------存进数组结束----------------------------------------------------------------------- */
/*--------------------------------------------从数组中取数据:遍历表,对应表名之后,存进对应table----------------------------------------------------------------------- */
long PK_SR_MAIN = KeyUtils.nextId();
//遍历表,对应表名之后,存进对应数据库table
for(int i=0;i<mapsName.length;i++){
if( mapsName[i].get(i).equals("***") ) {
//mapsDetail[i]是个map,表中的具体字段
//取字段
long PK_SR_DETAIL = KeyUtils.nextId();
long FK_SR_MAIN = PK_SR_MAIN;
String dgx = mapsDetail[i].get("dgx")== null ? "" :mapsDetail[i].get("dgx");
...........
//必填字段验证
//执行sql
JSON解析及数据库操作实战篇的更多相关文章
- C# 中的数据库操作~存储过程篇Mysql SqlServer
Mysql 存储过程查询方式 SQL server 普通数据库操作 EF 调用SQL SERVER存储过程 Mysql 存储过程查询方式: public NetPort GetNetdevicePor ...
- PHP json的插入和解析在数据库中的操作
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. PHP中往数据库中存储json数据在项目开发中也经常遇到,下面我就 ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- 屌炸天实战 MySQL 系列教程(二) 史上最屌、你不知道的数据库操作
此篇写MySQL中最基础,也是最重要的操作! 第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不 ...
- Java 面试知识点解析(六)——数据库篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- 金蝶随手记团队分享:还在用JSON? Protobuf让数据传输更省更快(实战篇)
本文作者:丁同舟,来自金蝶随手记技术团队. 1.前言 本文接上篇<金蝶随手记团队分享:还在用JSON? Protobuf让数据传输更省更快(原理篇)>,以iOS端的Objective-C代 ...
- Mybatis源码解析(四) —— SqlSession是如何实现数据库操作的?
Mybatis源码解析(四) -- SqlSession是如何实现数据库操作的? 如果拿一次数据库请求操作做比喻,那么前面3篇文章就是在做请求准备,真正执行操作的是本篇文章要讲述的内容.正如标题一 ...
- Web安全测试中常见逻辑漏洞解析(实战篇)
Web安全测试中常见逻辑漏洞解析(实战篇) 简要: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改 ...
- 牛客网数据库SQL实战解析(31-40题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
随机推荐
- 吴裕雄--天生自然HADOOP操作实验学习笔记:hbase学生选课案例
实验目的 复习hbase的shell操作和javaAPI操作 了解javaWeb项目的MVC设计 学会dao(数据库访问对象)和service层的代码编写规范 学会设计hbase表格 实验原理 前面我 ...
- C语言 杂货整理
C语言 杂货整理 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include ...
- 记一次mysql的问题处理@20181225
需求:由于某种原因,导致一次分库分表的环境中ddl添加字段和索引没有完全成功,比如100个分库,只有部分修改成功,需要将没有修改成功的库和表找出来,在手动去执行. 由于线上环境,这里模拟还原一下该问题 ...
- 页面置换算法——最近最久未使用算法(c语言实现)
操作系统实验:用C语言编程实现最近最久未使用置换算法(LRU) 最近最久未使用置换算法(LRU),全称Least Recently Used,是一种页面置换算法. 对于在内存中但又不用的数据块(内存块 ...
- .net 基础汇总(1)
1 转载 String.IsNullOrWhiteSpace和String.IsNullOrEmpty的区别
- 【Vue2.x笔记1】数据响应式原理
1.Object.defineProperty Vue2.x 使用Object.defineProperty 将 Vue 实例中的data对象全部转为getter/setter.在内部让 Vue 能够 ...
- 【Python】求n!
阶乘是基斯顿·卡曼(Christian Kramp,1760-1826)于1808年发明的运算符号,是数学术语.一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1 ...
- HTTP 协议的 8 种请求类型介绍
HTTP 协议的 8 种请求类型介绍 HTTP 协议中共定义了八种方法或者叫“动作”来表明对 Request-URI 指定的资源的不同操作方式,具体介绍如下: OPTIONS:返回服务器针对特定资源所 ...
- nginx技术
Nginx 处理高并发,单台服务器存在服务瓶颈 Nginx属于nio ,noblocking Io非阻塞式的 Apache属于Bio,Blocking IO 阻塞式的 安装部分 依赖安装:yum -y ...
- windows系统使用sketch设计的设计稿
由sketch设计的文件因为没有windows系统的sketch所以无法使用windows系统的电脑打开,那么怎么办呢?可以借助zeplin, 通过sketch(mac电脑)上传到zeplin账号,然 ...