我的情况是使用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对象时,可以在齐射中解析字符串吗? 我的工作代码如下,
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";
}
};
}
答案 0 :(得分:1)
不,因为在实现中查看这些行,在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)
所以如果你想使用齐声库的JsonObjectRequest你发送json并传递json。你可以改用StringRequest。