代码之家  ›  专栏  ›  技术社区  ›  Kadiem Alqazzaz

jsonbody数组只有一个索引

  •  0
  • Kadiem Alqazzaz  · 技术社区  · 7 年前
    ArrayList<String> products = new ArrayList<>();
    
        RequestQueue queue = Volley.newRequestQueue(PaymentActivity.this);
        String url = backendUrl+"/api/orders/createorder";
    
        for(PModel pModel: pModels){
            products.add(pModel.toString());
        }
    
        Log.e(TAG, "createOrder: products array size"+products.size());
    
        JSONObject jsonBody = new JSONObject();
        try {
            jsonBody.put("products", products);
            jsonBody.put("totalprice", convertFloat((float) totalCostDouble));
            jsonBody.put("productsprice", convertFloat((float) productCostDouble));
            jsonBody.put("shippingprice", convertFloat((float) shippingCostInt));
            jsonBody.put("tax", convertFloat((float) TAX));
    
        } catch (JSONException e) {
            e.printStackTrace();
        }
    
        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
                url, jsonBody,
                response -> {
                    Log.e(TAG, "createOrder: response"+response);
                }, error -> {alertDialog.dismiss();
            VolleyLog.e("JSONPost", "Error: " + error.getMessage());
        });
    
        jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
                0,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    
    
        queue.add(jsonObjReq);
    

    我使用Volley将数据发布到后端,问题是我有一个“产品”数组,但是当我检查我的MongoDB时,我只得到一个包含所有产品的索引,即使我在 Log

    2 回复  |  直到 7 年前
        1
  •  1
  •   Santanu Sur    7 年前

    尝试

    JSONArray productArray = new JSONArray(products);
    jsonBody.put("products", productArray.toString());
    
        2
  •  0
  •   Martin Zeitler    7 年前

    试着投那个 ArrayList 相似的:

    jsonBody.put("products", (Object) products);
    

    或类似的:

    jsonBody.put("products", new JSONArray(products));