我正在尝试通过json发布值以进行调整,但是不幸的是,我从atat中获取了json的空间,因此我无法从android中的更新中获得成功响应。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(activity.getResources().getString(R.string.serverurl))
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
InthreeApi apiService = retrofit.create(InthreeApi.class);
JSONObject paramObject = null; // Main JSON Object
JSONObject jsonFTcustomer = null;
JSONArray jsonDetailsArray = new JSONArray();
//String orderId=orderid.trim();
String orderId = orderid.replaceAll("\\s", "");
try {
paramObject=new JSONObject();
//paramObject.put("order_id",orderId.trim().replace("\\s", ""));
paramObject.put("order_id","orderid");
for(int i=0;i<productItems.size();i++) {
JSONObject jsonObject=new JSONObject();
jsonObject.put("product_id", productItems.get(i).getProductId());
jsonObject.put("product_name", productItems.get(i).getProductName());
jsonObject.put("sku", productItems.get(i).getProductCode());
jsonObject.put("qty", productItems.get(i).getQty());
jsonDetailsArray.put(jsonObject);
}
paramObject.put("products",jsonDetailsArray);
Log.v("cancle_order",String.valueOf(paramObject));
} catch (JSONException e) {
e.printStackTrace();
}
// jsonFTcustomer.toString().replaceAll("^\"|\"$", "");
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), paramObject.toString());
Getting JSON:
{"order_id":" 000753398","products":[{"product_id":"16869","product_name":" Minix 4000mah Power Bank","sku":"116869","qty":"1"}]}
Expected JSON:
{"order_id":"000753398","products":[{"product_id":"16869","product_name":" Minix 4000mah Power Bank","sku":"116869","qty":"1"}]}
我需要删除空格order_id键值,但找不到解决方案。预先感谢。
答案 0 :(得分:0)
您的for循环如下所示,请检查它。
for(int i=0;i<productItems.size();i++) {
JSONObject jsonObject=new JSONObject();
jsonObject.put("product_id", productItems.get(i).getProductId().trim());
jsonObject.put("product_name", productItems.get(i).getProductName().trim());
jsonObject.put("sku", productItems.get(i).getProductCode().trim());
jsonObject.put("qty", productItems.get(i).getQty().trim());
jsonDetailsArray.put(jsonObject);
}
trim()
使用此功能删除空格。
更新
String orderId = orderid.replaceAll(" ", "");
paramObject.put("order_id",orderId);