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