我在从Android改造中的键值中删除空格时遇到问题

时间:2019-04-06 15:07:31

标签: android json retrofit retrofit2 android-json

我正在尝试通过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键值,但找不到解决方案。预先感谢。

1 个答案:

答案 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);