最近项目中需要传递一个带数组的json数据给后台需求:

  格式如下:

  

{
  "orderType": "TX",
  "truckNo": "YCSCR38913",
  "pointNo": "6",
  "cntNum": 1,
  "transactList": [{
  "orderNo": "202202070014",
  "eirId": "5516985855147",
  "cntNo": "23525635555",
  "shipSeal": "",
  "customSeal": ""
  }]
  }

  以前我的post请求方式,都是把参数拼接到url后面

  那上述这种格式,是否可以采取 以前的方式,进行操作呢?

  测试结果是不行的:

  以下是针对上面jon正确的请求方式:

  

String orderNo="";
  String eirId="";
  String busiType="";
  String cntNo="";
  RequestParams params=new RequestParams();
  addRequestHeader(params);
  JSONObject object=new JSONObject();
  try {
  object.put("orderType", orderType);//上一页传递过来的数据
  object.put("truckNo", checkedKey);//本页提取的数据
  object.put("pointNo", gateNoStr);//本页提取的数据
  object.put("cntNum", size + "");
  JSONArray jsonArray=new JSONArray();
  for (int i=0; i < checkList.size(); i++) {
  BDSuitcaseBean.DataBean.ListBean listBean=checkList.get(i);
  orderNo=listBean.getOrderNo();//1.订单号
  eirId=listBean.getEirId();//2.订单号
  busiType=listBean.getBusiType();//3.箱子类型
  cntNo=listBean.getCntNo();//箱号
  //8.铅封号,根据箱子类型来判断 提空返重,提重返空,收空,才有铅封号
  if (busiType.equals(Constant.TZBD) || busiType.equals(Constant.TZ_FKBD) || busiType.equals(Constant.SKXBD) || busiType.equals(Constant.TkBD)) {//提重,提重返空,提空,收空
  shipSeal="";//不用传铅封号
  } else if (busiType.equals(Constant.TK_FZBD) || busiType.equals(Constant.TZ_FZBD) || busiType.equals(Constant.SZXBD)) {//提空返重,提重返重,收重Y
  shipSeal="Y";
  } else {
  Logger.e(TAG, "未知箱子类型-------------" + busiType);
  }
  JSONObject object1=new JSONObject();
  object1.put("orderNo", orderNo);
  object1.put("eirId", eirId);
  object1.put("cntNo", cntNo);
  object1.put("shipSeal", shipSeal);
  object1.put("customSeal", customSeal);
  jsonArray.put(object1);
  }
  // object.put("transactList", "");
  object.accumulate("transactList", jsonArray);
  params.setAsJsonContent(true);//支持json
  params.setBodyContent(object.toString());
  } catch (JSONException e) {
  Logger.e(TAG, "e--------" + e);
  e.printStackTrace();
  }
  BaseApplication.getInstance().httpRequest.xPostjson(mContext, params, Constant.BASE_HTTP + ContantUrl.getAppointCarSumit, new RequestResultJsonCallBack() {
  @Override
  public void onSucess(String result) {
  hideProgress();
  Logger.e(TAG, "指派车辆---result---" + result);
  NewBaseBean info=Constant.getPerson(result, NewBaseBean.class);
  if (info.getCode()==Constant.RETURN_SUCCESS__STATE_CODE) {
  finish();
  } else {
  ToastUtil(mContext, info.getMessage());
  }
  }
  @Override
  public void onFailure(int errorCode, String errorMsg) {
  hideProgress();
  Logger.e(TAG, "指派车辆---result---" + errorMsg);
  }
  });

  按照上面的传递方式即可以把一个json 字符串传递给服务端,他们解析出来的也是一个json数据。