开发者社区> 问答> 正文

用volley管理请求出错? 400 报错

用volley管理请求出错? 400 报错

@stormzhang 你好,想跟你请教个问题:我用你在“9gag”项目中的方式管理了请求,在GosnRequst中

protected Response<T> parseNetworkResponse(NetworkResponse response) {
        try {
            String json = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
            return Response.success(mGson.fromJson(json, mClazz),HttpHeaderParser.parseCacheHeaders(response));
        } catch (UnsupportedEncodingException e) {
            return Response.error(new ParseError(e));
        } catch (JsonSyntaxException e) {
            return Response.error(new ParseError(e));
        }

其中

Sting json="[{"ID":"5","name":"test","psd":"123","create_date":"2014-04-19 13:59:47"}]";




但是,每次运行到 

mGson.fromJson(json, mClazz)

的时候 就会抛

JsonSyntaxException

异常

我的mClass是 

User.UserRequestData.class



这是User类


public class User extends BaseModel{
    private static final HashMap<String, User> CACHE = new HashMap<String, User>();
    public String ID;
    public String name;
    public String psd;
    public String create_date;
    private static void addToCache(User user) {
        CACHE.put(user.ID, user);
    }

    private static User getFromCache(String id) {
        return CACHE.get(id);
    }

    public static User fromJson(String json) {
        return new Gson().fromJson(json, User.class);
    }

    public static User fromCursor(Cursor cursor) {
        String id = cursor.getString(cursor.getColumnIndex(UserDataHelper.UsersDBInfo.ID));
        User user = getFromCache(id);
        if (user != null) {
            return user;
        }
        user = new Gson().fromJson(
                cursor.getString(cursor.getColumnIndex(UserDataHelper.UsersDBInfo.NAME)),
                User.class);
        addToCache(user);
        return user;
    }

    public static class UserRequestData {
        public ArrayList<User> data;
    }


}

请问到达时哪里出问题了

万分感谢!!













展开
收起
爱吃鱼的程序员 2020-06-02 17:02:04 427 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    问题已解决:是因为

    public static class UserRequestData {
            public ArrayList<User> data;
        }

    Sting json="[{"ID":"5","name":"test","psd":"123","create_date":"2014-04-19 13:59:47"}]";



    映射失败

    json数据应该是

    {"data":[{"ID":"5","name":"test","psd":"123","create_date":"2014-04-19 13:59:47"}]}



    就可以映射成功了!找了半天!饿死了



    2020-06-02 17:02:18
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
面向失败设计 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载