核心包:
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
一:接收数据
json数据格式如下:
1、单一对象型:
a、数据格式
b、接口java(核心)代码范例
@ResponseBody @RequestMapping(value = "/specialtyOA2DMS.do", method = RequestMethod.POST) public JSONObject specialtyOA2DMS(@RequestBody JSONObject jsonObject, HttpServletRequest request) throws GenericBusinessException { JSONObject return_json = new JSONObject(); try { //校验入参 if (StringTool.isEmpty(jsonObject.toString())) { return_json.put("RESULT_STATUS", "F"); return_json.put("RESULT_REASON", "入参错误"); return return_json; } //校验入参单头不能为空 if(StringTool.isEmpty(jsonObject.getString("APPLY_DATE")) || StringTool.isEmpty(jsonObject.getString("OA_FORM_NO")) || StringTool.isEmpty(jsonObject.getString("SPECIALTY_LINE"))){ return_json.put("RESULT_STATUS", "F"); return_json.put("RESULT_REASON", "入参必填项存在空值(OA_FORM_NO-OA流程单号;APPLY_DATE-申请日期)"); return return_json; } else { String oaFormNoc = (String)jsonObject.getString("OA_FORM_NO");//OA流程单号 //校验入参单身数据 JSONArray specialtyLine = jsonObject.getJSONArray("SPECIALTY_LINE"); if(null != specialtyLine && specialtyLine.size()>0){ for(Object object : specialtyLine){ JSONObject obj = (JSONObject)object; String sapContractNo = (String)obj.getString("SAP_CONTRACT_NO");//SAP合同编号 String prodCode = (String)obj.getString("SPECIALTY_PROD_CODE");//特制品编码 String unit = (String)obj.getString("SPECIALTY_PROD_UNIT");//单位 String qty = (String)obj.getString("SPECIALTY_PROD_QTY");//数量 //必填不能为空 if(StringTool.isEmpty(sapContractNo) || StringTool.isEmpty(prodCode) || StringTool.isEmpty(unit) || StringTool.isEmpty(qty)){ return_json.put("RESULT_STATUS", "F"); return_json.put("RESULT_REASON", "入参必填项存在空值(SAP_CONTRACT_NO-SAP合同编号/SPECIALTY_PROD_CODE-特制品编码/SPECIALTY_PROD_UNIT-单位/SPECIALTY_PROD_QTY-申请数量)"); return return_json; } } return_json.put("RESULT_STATUS", "S"); return_json.put("RESULT_REASON", "成功"); return return_json; } else { return_json.put("RESULT_STATUS", "F"); return_json.put("RESULT_REASON", "入参错误"); return return_json; } } } catch(Exception e){ return_json.put("RESULT_STATUS", "F"); return_json.put("RESULT_REASON", "入参错误"); return return_json; } return return_json; }View Code
2、对象对象数组型:
a、数据格式
b、接口java(核心)代码范例
@ResponseBody @RequestMapping(value = "/specialtySAP2DMS.do", method = RequestMethod.POST) public JSONObject specialtySAP2DMS(@RequestBody JSONObject[] jsonObject, HttpServletRequest request) throws GenericBusinessException { JSONObject return_json = new JSONObject(); SapImportData sapData = new SapImportData(); List<SpecialtyProduct> specialtyProductList = new ArrayList<SpecialtyProduct>(); try { //校验入参 if(null != jsonObject && (jsonObject.length)>0){ for(JSONObject jsonObj : jsonObject){ SpecialtyProduct specialtyProduct = new SpecialtyProduct(); String prodCode = "";//物料编号 String prodDesc = "";//物料描述 String prodFlag = "";//标识 String prodRemark = "";//说明 String prodIscontr = "";//是否进行数量管控 if(StringTool.isEmpty(jsonObj.getString("PROD_CODE"))){ return_json.put("RESULT_STATUS", "F"); return_json.put("RESULT_REASON", "入参必填项存在空值(PROD_CODE-物料编号)"); this.sapLog(sapData, "", "参数为空", "入参必填项存在空值(PROD_CODE-物料编号)","specialtySAP2DMS.do"); return return_json; } else { prodCode = (String)jsonObj.getString("PROD_CODE");//物料编号 if(StringTool.isNotEmpty(jsonObj.getString("PROD_DESC"))){ prodDesc = (String)jsonObj.getString("PROD_DESC"); } if(StringTool.isNotEmpty(jsonObj.getString("PROD_FLAG"))){ prodFlag = (String)jsonObj.getString("PROD_FLAG"); } if(StringTool.isNotEmpty(jsonObj.getString("PROD_REMARK"))){ prodRemark = (String)jsonObj.getString("PROD_REMARK"); } if(StringTool.isNotEmpty(jsonObj.getString("PROD_ISCONTR"))){ prodIscontr = (String)jsonObj.getString("PROD_ISCONTR"); } specialtyProduct.setProdCode(prodCode); specialtyProduct.setProdDesc(prodDesc); specialtyProduct.setProdFlag(prodFlag); specialtyProduct.setProdRemark(prodRemark); specialtyProduct.setProdIscontr(prodIscontr); //处理开始时间和结束时间 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); format.setTimeZone(TimeZone.getTimeZone("GMT+8")); Calendar c = Calendar.getInstance(); Timestamp ct = new Timestamp(c.getTimeInMillis());//创建时间 specialtyProduct.setCreatedDate(ct); //通用字段 specialtyProduct.setCreatorId(1l); specialtyProduct.setCreatorName("admin"); specialtyProduct.setModiDate(ct); specialtyProduct.setModifierId(1l); specialtyProduct.setModifierName("admin"); specialtyProduct.setDataSource("SAP汇入"); specialtyProduct.setOwnerId(1l); //添加到List集合中批量保存 specialtyProductList.add(specialtyProduct); } } return_json.put("RESULT_STATUS", "S"); return_json.put("RESULT_REASON", "成功"); return return_json; } else { return_json.put("RESULT_STATUS", "F"); return_json.put("RESULT_REASON", "入参错误"); return return_json; } } catch(Exception e){ return_json.put("RESULT_STATUS", "F"); return_json.put("RESULT_REASON", "接口处理错误"); return return_json; } }View Code
二:传输数据到接口
a、数据格式
或
b、接口java(核心)代码范例
@SuppressWarnings("unchecked") @Override public String AIReturnHttpPost(List<Object> ObjectList)throws GenericBusinessException{ String resultStr = ""; String entityJson = JSON.toJSONString(ObjectList); String url = "";//填自己要调接口的路径 HttpClient client = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); StringEntity entity = new StringEntity(entityJson, "utf-8"); entity.setContentEncoding("UTF-8"); entity.setContentType("application/json"); httppost.setEntity(entity); Character statusWL = new Character('F'); String message = ""; try { HttpResponse result = client.execute(httppost); String resData = EntityUtils.toString(result.getEntity(), "utf-8"); if(StringTool.isNotEmpty(resData)){ JSONObject jobg = JSON.parseObject(resData); if(StringTool.isNotEmpty(jobg.get("code"))){ String code = jobg.get("code").toString(); if(StringTool.isNotEmpty(jobg.get("message"))){ message = jobg.get("message").toString(); } if("200".equals(code)){ statusWL = new Character('T'); } else { statusWL = new Character('F'); } resultStr = resultStr+code+"-"+message; } } } catch (Exception e) { message = "处理接口异常"; e.printStackTrace(); } return resultStr; }View Code