我是排球的新手,我需要将一个自定义对象数组发布到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);
}
答案 0 :(得分:1)
需要为每个循环添加JSONObject
到JSONArray
,例如
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());
这可能会对你有所帮助。