java.lang.IllegalStateException: Expected a name but was STRING
at com.google.gson.stream.JsonReader.nextName(JsonReader.java:444)
at com.jiankaotiao.activity.JsonUtils.parseJson(JsonUtils.java:29)
at com.jiankaotiao.activity.Log_InActivity$1MyRunnable.run(Log_InActivity.java:53)
at java.lang.Thread.run(Thread.java:856)
以下是我的代码
public void parseJson(String jsonData){
try{
JsonReader reader=new JsonReader(new StringReader(jsonData));
reader.beginArray();
while(reader.hasNext()){
Jiankaotiao jkt=null;
String course="";
String classroom="";
String banji="";
String mainjiankao="";
String testTime="";
reader.beginObject();
while(reader.hasNext()){
String tagName=reader.nextName();
if(tagName.equals("classroom")){
classroom=reader.nextString();
}
if(tagName.equals("banji")){
banji=reader.nextString();
}
if(tagName.equals("teacher")){
mainjiankao=reader.nextString();
}
if(tagName.equals("kemu")){
course=reader.nextString();
}
if(tagName.equals("time")){
testTime=reader.nextString();
}
if(tagName.equals("account")){
}
}
System.out.println(course+classroom+banji+mainjiankao+testTime);
jkt=new Jiankaotiao(course, classroom, banji, mainjiankao, testTime);
list.add(jkt);
reader.endObject();
}
reader.endArray();
}catch(Exception e){
System.out.println("这里有错");
e.printStackTrace();
}
}
}
------解决方案--------------------
看你这条报错信息: Expected a name but was STRING
json的格式有问题啊
------解决方案--------------------
你把jsondata打印出来给大家看看。
------解决方案--------------------
Json一般是object,你的是String,在while(reader.hasNext())后加一句reader.next();