代码:

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解析及数据库操作实战篇的更多相关文章

  1. C# 中的数据库操作~存储过程篇Mysql SqlServer

    Mysql 存储过程查询方式 SQL server 普通数据库操作 EF 调用SQL SERVER存储过程 Mysql 存储过程查询方式: public NetPort GetNetdevicePor ...

  2. PHP json的插入和解析在数据库中的操作

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. PHP中往数据库中存储json数据在项目开发中也经常遇到,下面我就 ...

  3. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

  4. 屌炸天实战 MySQL 系列教程(二) 史上最屌、你不知道的数据库操作

    此篇写MySQL中最基础,也是最重要的操作! 第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不 ...

  5. Java 面试知识点解析(六)——数据库篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  6. 金蝶随手记团队分享:还在用JSON? Protobuf让数据传输更省更快(实战篇)

    本文作者:丁同舟,来自金蝶随手记技术团队. 1.前言 本文接上篇<金蝶随手记团队分享:还在用JSON? Protobuf让数据传输更省更快(原理篇)>,以iOS端的Objective-C代 ...

  7. Mybatis源码解析(四) —— SqlSession是如何实现数据库操作的?

    Mybatis源码解析(四) -- SqlSession是如何实现数据库操作的?   如果拿一次数据库请求操作做比喻,那么前面3篇文章就是在做请求准备,真正执行操作的是本篇文章要讲述的内容.正如标题一 ...

  8. Web安全测试中常见逻辑漏洞解析(实战篇)

    Web安全测试中常见逻辑漏洞解析(实战篇) 简要: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改 ...

  9. 牛客网数据库SQL实战解析(31-40题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...

随机推荐

  1. 42.通过原生SQL语句进行操纵mysql数据库

    views.py文件中: from django.shortcuts import render # 导入connection模块 from django.db import connection d ...

  2. dp --A - Super Jumping! Jumping! Jumping!

    A - Super Jumping! Jumping! Jumping! Nowadays, a kind of chess game called “Super Jumping! Jumping! ...

  3. Python带你来一次说走就走的环球旅行

      image 1.目 标 场 景 十一长假,相信大部分的朋友这会应该是在全国各地浪或者是在浪的路上,朋友圈成为你们表演的场所. 当然,也有一小戳朋友是选择家里蹲,你们是否感觉到无聊?是否想出去浪,参 ...

  4. 如何在Mac OS X上将PDF转换为Microsoft Word

    Lighten PDF to Word Converter for Mac是一个简单但功能强大的应用程序,可将PDF文件准确,轻松地转换为Microsoft Word.它可以保留原始内容的布局,格式, ...

  5. 一次H5毛玻璃效果有感

    印象中H5实现毛玻璃效果是挺好实现的,主要的代码就是css的filter:blur. 之前也用过几次,给背景图加高斯模糊啊,给一个div加高斯模糊啊.只要给需要添加高斯模糊的元素直接添加filter属 ...

  6. css 字体旋转

    <div v-else> <img src="/img/dashboard/nodata.png"> <div style="color: ...

  7. 静态路由、RIP、SOPF、VLAN间的路由

    常用命令: clear ip router * --清楚全部路由 show ip route --显示路由表 show ip inter b--显示接口信息 show ip protocols  -- ...

  8. LayIM聊天框全屏根据浏览器高宽自适应

    个人博客 地址:http://www.wenhaofan.com/article/20190410190628 问题 由于LayIM没有处理聊天框在全屏状态下根据浏览器缩放处理高宽,所以会导致在浏览器 ...

  9. H5_0009:关于HTML5中Canvas的宽、高设置问题

    关于HTML5中Canvas的宽.高设置问题 Canvas元素默认宽 300px, 高 150px, 设置其宽高可以使用如下方法(不会被拉伸): 方法一:        <canvas widt ...

  10. koa文档笔记

    请求 get ctx.request.query // 查询对象 ctx.request.querystring // 查询字符串 ctx.query // 查询对象 ctx.querystring ...