我有一种情况,我使用Android-volley来POST我的json对象,我可以成功地发布所有内容,我的数据在服务器中是可见的,但服务器响应为String而不是json,这就是我出错的原因。
com.android.volley.ParseError: org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
那么,当我们传递json对象时,volley中有可能解析字符串吗?我的工作代码如下:
HashMap<String, String> params = new HashMap<String, String>();
params.put("email", "dude@gmail.com");
params.put("password", "qweffrty");
params.put("name", "Dudeb");
params.put("place", "Bangalore");
params.put("phone", "991000000000");
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.POST,
Constants.BASE_URL+"register",
new JSONObject(params),
createSuccessListener(),
createErrorListener());
private static Response.Listener<JSONObject> createSuccessListener() {
return new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// TODO parse response
String test;
test = "yyy";
}
};
}
private static Response.ErrorListener createErrorListener() {
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Log.d(TAG, "Error Response code: " + error.getMessage());
String test;
test = "yyy";
}
};
}发布于 2014-08-03 22:17:38
不是,因为看看实现中的这些行,在JsonRequest中我们有:
public abstract class JsonRequest<T> extends Request<T>
...
abstract protected Response<T> parseNetworkResponse(NetworkResponse response);在JsonObjectRequest中,我们有:
public class JsonObjectRequest extends JsonRequest<JSONObject>看看JsonObjectRequest中的响应定义:
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response)所以如果你想使用volley库的JsonObjectRequest,你可以发送json并交付json。您可以改用StringRequest。
https://stackoverflow.com/questions/23192644
复制相似问题