我正在使用volley进行json解析.我想使用POST向服务器端发送一些数据.我正在尝试发送.现在任何人都可以告诉我如何将过滤器阵列发送到服务器?
以下是我的代码段.我也试过Hashmap和Jsonobject.但得到这个错误.
错误:
org.json.JSONException: Value at Data of type java.lang.String cannot be converted to JSONObject
格式
{ "typeName": "MANUFACTURER","typeId": 22,"cityId": 308,"sortBy": "productname","sortOrder": "desc","filter":[ { "filterId":101,"typeName":"CAT_ID","filterId":102,"typeName":"CAT_ID" } ] }
对于Code Check pastie
解决方法
如果您在调用API时遇到问题,那么这将对您有所帮助.
RequestQueue queue = Volley.newRequestQueue(this); JsonObjectRequest jobReq = new JsonObjectRequest(Request.Method.POST,url,jObject,new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject jsonObject) { } },new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { } }); queue.add(jobReq);
其中jObject是您要发送到服务器的JSON数据.
JSONArray的实现类似.而不是JsonObjectRequest
使用JsonArrayRequest并发送jArray而不是jObject.
对于创建json数组,只需做一点调整
JSONArray array=new JSONArray(); for(int i=0;i<filter_items.size();i++){ JSONObject obj=new JSONObject(); try { obj.put("filterId",filter_items.get(i)); obj.put("typeName","CAT_ID"); } catch (JSONException e) { e.printStackTrace(); } array.put(obj); }
最后添加json数组如下
jsonParams.put("filter",array);
在您的情况下,您将Json数组转换为字符串