Android Volley如何发布自定义对象数组

时间:2017-07-19 11:41:14

标签: php android android-volley

我是排球的新手,我需要将一个自定义对象数组发布到PHP api,以便将其保存在MYSQL数据库中,我该如何实现?

注意:我知道我的下面的代码只会传递我的数组的最后一个对象

这是我的目标:

public class object {

String name;
Integer qty;
Integer price;
}

和我的代码:

final ArrayList<object> myarray = new ArrayList<>();
        myarray.add(ob1);
        myarray.add(ob2);
        RequestQueue queue = Volley.newRequestQueue(this);
        JSONObject jsonArray = new JSONObject();
        try {
            int i = 0;
            for (object obj : myarray) {

                jsonArray.put("id",i++);
                jsonArray.put("name",obj.name);
                jsonArray.put("qty",obj.qty);
                jsonArray.put("price",obj.price);
            }
            Log.i("JSON ARRAY ", jsonArray.toString());

        } catch (Exception e) {
            e.printStackTrace();
        }
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, API_URL, jsonArray, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                Log.i("RESPONSE",response.toString());
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }
        }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                HashMap<String, String> params = new HashMap<>();
                return params;
            }
        }; queue.add(request);
    }

1 个答案:

答案 0 :(得分:1)

需要为每个循环添加JSONObjectJSONArray,例如

JSONArray jsonArray = new JSONArray();

int i = 0;
  for (object obj : myarray) {
     JSONObject jsonObj= new JSONObject();
     jsonObj.put("id", i++);
     jsonObj.put("name", nameStr);
     jsonObj.put("qty", qtyStr);
     jsonObj.put("price", priceStr);

     jsonArray.put(jsonObj);

}

Log.i("JSON ARRAY ", jsonArray.toString());

这可能会对你有所帮助。