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接收,当然要报错了,我还一直钉在那行代码看,真是无语啊,弄了一天半,郁闷啊,遇到问题,一定要解决,不要总想着逃过去,我之前也是想那么做,可是他会一直跟着你,菜鸟,继续走吧,我们一直在路上