Как установить массив в jsonobject - PullRequest
1 голос
/ 07 мая 2019

Невозможно установить массив внутри JSONObject в соответствии с ответом. Ниже приведен мой код, в котором я не могу установить массив в jsonobject. Как отправить значение ключа для массива внутри моего jsonobject, для которого поделился ответ, какой код получает от почтальона

Это правильный путь в коде

код -

     JsonArray array = new JsonArray();
            array.add(productId);
            array.add(qty);
     JSONObject jsonObject = new JSONObject();
                jsonObject.put("productDetails", array);**

Это код в MainActivity. Проблема не в получении правильного jsonarray в моем объекте JSON, поэтому API не будет работать правильно Эти значения ключа String используются для передачи параметров запроса

    String key="WSEoaGBifOEIS5dd6vQ5tfbs3R1c8Rsz";
            String affId="teamfotog";
            String act="photoStores";
            String latitude="40.7127753";
            String longitude="-74.0059728";
            String devinf="Android,7.0";
            String appver="1.00";
            String productId="6670002";
            String qty="3";
            //productDetails
            **JsonArray array = new JsonArray();
            array.add(productId);
            array.add(qty);**

            JSONObject jsonObject = new JSONObject();
            try {
                jsonObject.put("apiKey", key);
                jsonObject.put("affId", affId);
                jsonObject.put("act", act);
                jsonObject.put("latitude", latitude);
                jsonObject.put("longitude", longitude);
                jsonObject.put("devinf", devinf);
                jsonObject.put("appver", appver);
                **jsonObject.put("productDetails", array);**

    JsonParser jsonParser = new JsonParser();

    ApiStorePhotoInterface apiInterface = ApiStorePhotoClient.getApi();

    Call<PhotoStoreMainModel> call = apiInterface.getResponse((JsonObject) jsonParser.parse(jsonObject.toString().trim()));

Запросить параметры в Jsonbody -

{"apiKey":"WSEoaGBifOEIS5dd6vQ5tfbs3R1c8Rsz","affId":"teamfotog","act":"photoStores","latitude":"40.7127753","longitude":"-74.0059728","devinf":"Android,7.0","appver":"1.00","productDetails":[{"productId":"6670002","qty":"3"}]}

Ответы [ 3 ]

1 голос
/ 07 мая 2019

Конечно, это не сработает.Вы непосредственно добавляете объекты (Strings) в ваш JsonArray.В теле ответа вы действительно хотите JsonObject внутри JsonArray.Попробуйте это -

JsonObject productDetail = new JsonObject();
productDetail.addProperty("productId", productId);
productDetail.addProperty("qty", qty);

JsonArray array = new JsonArray();
array.add(productDetail);
1 голос
/ 07 мая 2019

Попробуйте это.

jsonObject.put("productDetails",(Object)array);
0 голосов
/ 07 мая 2019

Вы должны поместить детальную модель продукта в массив

            String key="WSEoaGBifOEIS5dd6vQ5tfbs3R1c8Rsz";
            String affId="teamfotog";
            String act="photoStores";
            String latitude="40.7127753";
            String longitude="-74.0059728";
            String devinf="Android,7.0";
            String appver="1.00";
            String productId="6670002";
            String qty="3";     

            JsonObject product = new JsonObject();
            product.put("productId",productId);
            product.put("qty",qty);


            JsonArray array = new JsonArray();
            array.add(product);


            JSONObject jsonObject = new JSONObject();
            jsonObject.put("apiKey", key);
            jsonObject.put("affId", affId);
            jsonObject.put("act", act);
            jsonObject.put("latitude", latitude);
            jsonObject.put("longitude", longitude);
            jsonObject.put("devinf", devinf);
            jsonObject.put("appver", appver);
            jsonObject.put("productDetails", array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...