当前位置: 代码迷 >> Android >> json解析时出的错解决办法
  详细解决方案

json解析时出的错解决办法

热度:104   发布时间:2016-04-28 04:19:21.0
json解析时出的错
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();
}

}

}

------解决方案--------------------
本帖最后由 cclovescw 于 2014-08-12 12:51:02 编辑
看你这条报错信息: Expected a name but was STRING
json的格式有问题啊
------解决方案--------------------
你把jsondata打印出来给大家看看。
------解决方案--------------------
Json一般是object,你的是String,在while(reader.hasNext())后加一句reader.next();
  相关解决方案