Cómo configurar una matriz en jsonobject

No se puede establecer la matriz dentro de JSONObject de acuerdo con la respuesta. A continuación se muestra mi código en el que no puedo configurar la matriz en jsonobject. Cómo enviar un valor clave para la matriz dentro de mi objeto json para el cual compartió la respuesta que el código está obteniendo del cartero

¿Es esta la forma correcta en el código?

Código--

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

Este es el código en MainActivity. El problema no es obtener el jsonarray correcto en mi objeto JSON, por lo que la API no golpeará correctamente Estos valores de clave de cadena se utilizan para pasar en los parámetros de solicitud

    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()));

Request Params está en 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"}]}
Respuesta 1

Por supuesto, no funcionará. Está agregando directamente objetos ( Strings) en su JsonArray. En el cuerpo de respuesta, lo que realmente quieres es un JsonObjectinterior JsonArray. Prueba esto -

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

JsonArray array = new JsonArray();
array.add(productDetail);
Respuesta: 2

Prueba esto .

jsonObject.put("productDetails",(Object)array);
Respuesta: 3

Tengo un panel 9x9, que es panel1 [] [] cada panel tiene un JLabel, así que label1 [] [] y agrego cada etiqueta al panel en el bucle for: for (int y = 0; y <9; y ++) {para (int x = 0; x <9; x ++) {...

Estoy enfrentando un problema con el controlador jdbc de SAS que no había visto antes, y me preguntaba cuál sería el comportamiento correcto de JDBC. Supongamos que tengo algunos ResultSetMetaData: metadata.getColumnName (index) -> ...

Implementación de pila. ¿Cómo podemos crear un archivo tipo "Nodo" en una clase de Nodo? ¿Cómo puede la variable "primero" del tipo "Nodo" contener un archivo de tipo "Nodo"? Gracias por la ayuda de la clase pública Pila {Nodo privado ...

Sabemos que si queremos lograr una herencia múltiple en Java podemos usar interfaces. Si una clase implementa dos interfaces que tienen la misma firma de método, ¿cómo logró la herencia múltiple ...