zoukankan      html  css  js  c++  java
  • java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 296

    先贴代码

    public class ListDataRequest extends JsonRequest<ArrayList<Note>> {

     public ListDataRequest(int method, String url,Map<String,String> contentBody, Listener<ArrayList<Note>> listener, ErrorListener errorlistener) {
      super(method, url, contentBody, listener, errorlistener);
     }

    // public ListDataRequest(String url, Map requestBody, Listener<ArrayList> listener,ErrorListener errorListener){
    //  super(url, requestBody, listener, errorListener);
    // }

     @Override
     protected Response<ArrayList<Note>> parseNetworkResponse(NetworkResponse response) {
      try {
       return Response.success(parseStrToNoteArray(new String(response.data,
           HttpHeaderParser.parseCharset(response.headers))),
         HttpHeaderParser.parseCacheHeaders(response));
      } catch (UnsupportedEncodingException e) {
       return Response.error(new ParseError(e));
      }
     }
     
     private ArrayList<Note> parseStrToNoteArray(String resultStr) {
      Gson gson = new Gson();
      JsonParser jsonParse = new JsonParser();
      JsonObject rootObj = jsonParse.parse(resultStr).getAsJsonObject();
      ArrayList<Note> array = null;
      try {
       // parseResult(rootObj.getAsJsonObject("root"));
       String json = gson.toJson(rootObj.getAsJsonArray("msg"));
    //   Log.i("json", json);
       array = gson.fromJson(gson.toJson(rootObj.getAsJsonArray("msg")),new TypeToken<ArrayList<Note>>() {}.getType());
      } catch (JsonSyntaxException e) {
       e.printStackTrace();
      }
      return array;
     } 

    }

     array = gson.fromJson(gson.toJson(rootObj.getAsJsonArray("msg")),new TypeToken<ArrayList<Note>>() {}.getType());

    这行代码反复出现 java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 296错误

    我就在想啊这地方完全正确啊,怎么你想要一个String  我却给你了个array,怎么回事啊,我盯着这行代码看了一天半,是现在找不到哪里错了,刚开始做了一个demo,把ArrayList里的泛型去掉了,就能正确获取数据,我就在想难道是我的bean错了,我看了看人家的demo,也是一样啊,怎么我的就不行啊,最后还是一个哥给我指出了错误

    贴出我的note

    package com.blue.bean;

    import java.util.ArrayList;

    import org.json.JSONArray;

    import com.google.gson.annotations.SerializedName;

    /**
     * @author SLJM
     * @create 2014-4-26
     * @desc 帖子(note)或文章(article)
     *
     */

    public class Note {
     /**
      * 帖子ID
      */
     @SerializedName("id")
     public String id;
     /**
      * 用户ID
      */
     @SerializedName("user_id")
     public String user_id;
     /**
      * 评论个数
      */
     @SerializedName("comment_count")
     public String comment_count;
     /**
      *  创建时间
      */
     @SerializedName("data_create")
     public String ctime;
     /**
      * 手机型号
      */
     @SerializedName("phone_type")
     public String phone_type;
     /**
      * 转发个数
      */
     @SerializedName("re_count")
     public String re_count;
     
     /**
      * 帖子类型
      *1:帖子2:单页 3:新闻4:资讯  5:转发帖
      */
     @SerializedName("type")
     public String type;
     
     
     /**
      * 帖子内容
      */
     @SerializedName("info")
     public String content;
     /**
      * 用户昵称
      */
     @SerializedName("user_name")
     public String user_name;
     /**
      * 文章标题(只在行业资讯和文章列表中显示,大咖秀没有)
      */
     @SerializedName("title")
     public String title;
     /**
      *  赞个数
      */
     @SerializedName("like_count")
     public String like_count;
     /**
      *  图片数组
      */
     @SerializedName("img")
     public ArrayList<NotePhoto> img;
     
    }

    这地方img,服务器给的数据是一个Array,我返回的是String,就是这个斜体的地方,我以前是String,人家返回的是一个数组,我却用String接收,当然要报错了,我还一直钉在那行代码看,真是无语啊,弄了一天半,郁闷啊,遇到问题,一定要解决,不要总想着逃过去,我之前也是想那么做,可是他会一直跟着你,菜鸟,继续走吧,我们一直在路上

  • 相关阅读:
    第九周作业
    第八周作业
    第七周作业
    作业2
    作业1
    2019春总结作业
    第十四周总结
    十二周编程总结
    十一周编程总结
    第十周作业
  • 原文地址:https://www.cnblogs.com/zqq965774513/p/3699095.html
Copyright © 2011-2022 走看看