代码:
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