首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Android Volley用于Json请求和响应作为字符串

将Android Volley用于Json请求和响应作为字符串
EN

Stack Overflow用户
提问于 2014-04-21 15:08:49
回答 1查看 3.9K关注 0票数 4

我有一种情况,我使用Android-volleyPOST我的json对象,我可以成功地发布所有内容,我的数据在服务器中是可见的,但服务器响应为String而不是json,这就是我出错的原因。

com.android.volley.ParseError: org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject

那么,当我们传递json对象时,volley中有可能解析字符串吗?我的工作代码如下:

代码语言:javascript
复制
            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";
        }
    };
}
EN

回答 1

Stack Overflow用户

发布于 2014-08-03 22:17:38

不是,因为看看实现中的这些行,在JsonRequest中我们有:

代码语言:javascript
复制
public abstract class JsonRequest<T> extends Request<T>
...
abstract protected Response<T> parseNetworkResponse(NetworkResponse response);

在JsonObjectRequest中,我们有:

代码语言:javascript
复制
public class JsonObjectRequest extends JsonRequest<JSONObject>

看看JsonObjectRequest中的响应定义:

代码语言:javascript
复制
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response)

所以如果你想使用volley库的JsonObjectRequest,你可以发送json并交付json。您可以改用StringRequest。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23192644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档