我正在使用GSON
解析Json数据。我的Json数据如下:
{
"count": "12",
"colbreak": 1,
"name": "unary rels",
"score": "9090",
"Words": [
{
"count": 6,
"word": "prp_għaċ-",
"name": "prp_għaċ-",
"score": 9.1,
"Words": "kol",
"seek": 2231297
}
],
"seek": 0
}
GsonParse.java语言
public class GsonParse {
@SerializedName("count")
public String count;
@SerializedName("colbreak")
public String colbreak;
@SerializedName("name")
public String count;
@SerializedName("score")
public String score;
@SerializedName("Words")
public List<Words> mWords = new ArrayList<Words>();
@SerializedName("seek")
public String seek;
}
我使用下面的方法来解析这个JSON数据。
public static <T> ArrayList<T> JsonParse(T t, String response) {
// convert String into InputStream
InputStream in = new ByteArrayInputStream(response.getBytes());
JsonReader reader;
ArrayList<T> lcs = new ArrayList<T>();
try {
reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
Gson gson = new Gson();
reader.beginObject();
while (reader.hasNext()) {
T cse = (T) gson.fromJson(reader, t.getClass());
lcs.add(cse);
}
reader.endObject();
/*
* reader.nextName(); reader.nextString(); reader.nextName();
* reader.nextString();
*/
reader.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return (ArrayList<T>) lcs;
}
我正面临以下错误。
03-31 10:14:26.968: E/AndroidRuntime(18578): com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NAME at line 1 column 73
5条答案
按热度按时间kninwzqo1#
您可以尝试阅读gson值,如下所示:
假设你只收到了这一个块而不是一个列表。而且这些数据目前在assets文件夹的一个文件中。你可以把它改到你想从中读取它的流中。
您使用的类应如下所示:
GsonParse.类别
单词.类
words.class中缺少一个参数,您可以添加它。
GSON不直接支持UTF-8字符,所以当使用http接收响应时,您必须在http本身的响应中将其转换为UTF-8格式。
您可以尝试使用:
umuewwlo2#
您好使用以下等级库
Json类别
}
调用API将响应放入以下代码并检索数据
我希望这对你有帮助。
lf3rwulv3#
替换
与
我猜问题是您将
public String count;
同时用于@SerializedName("count")
和@SerializedName("name")
uinbv5nw4#
试试看:
7qhs6swi5#
您的代码中缺少许多内容。
请看下面的代码并尝试此代码。
有关更多详细信息,请查看此example