我正在尝试使用数组作为我的参数发出一个排球POST请求,例如我想要POST
{"types":[1,2,3]}
我现在拥有的是一个字符串
{"types":"[1,2,3]"}
这是我提出截击请求的方式:
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = new JSONObject();
try{
jsonObject.put("types", list);
jsonArray.put(jsonObject);
System.out.println(jsonObject);
}catch(Exception e){
}
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, jsonObject,
new Response.Listener<JSONObject>(){
@Override
public void onResponse(JSONObject response) {
Log.e("Response", response.toString());
}
},
new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Error.Response", error.toString());
String json = null;
NetworkResponse response = error.networkResponse;
if(response != null && response.data != null){
switch(response.statusCode){
case 400:
json = new String(response.data);
System.out.println(json);
break;
}
}
}
})
{
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<>();
headers.put("Authorization", Token);
return headers;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonObjectRequest);
List是一个声明为:
的数组列表List<Integer> list = new ArrayList<Integer>();
我假设jsonObject.put(“types”,list)会将我的数组变成一个列表,我应该如何解决这个问题呢?
答案 0 :(得分:1)
而不是List
,请尝试JSONArray
。
JSONArray types=new JSONArray();
types.put(1);
types.put(2);
types.put(3);
jsonObject.put("types", types);
jsonArray.put(jsonObject);
这应该可以解决您的问题