У меня была проблема, чтобы удалить пробел из ключевых значений в Android-модификации - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь опубликовать значение через json для retorfit, но, к сожалению, получаю место в json fromat, так что я не могу получить успешный ответ от дооснащения в 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"}]}

Мне нужно удалитьзначение ключа space_id, но я не смог найти решение.Спасибо заранее.

1 Ответ

0 голосов
/ 06 апреля 2019

Ваш цикл 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...