当前位置: 代码迷 >> Android >> 使用Gson解析json报错了,哪位英雄看下。该如何处理
  详细解决方案

使用Gson解析json报错了,哪位英雄看下。该如何处理

热度:37   发布时间:2016-05-01 21:41:18.0
使用Gson解析json报错了,哪位英雄看下。。
这是对json字符串进行解析的方法:
Java code
static ArrayList<Contact> parseJson(String JsonData){            ArrayList<Contact>list = null;            JsonReader reader = new JsonReader(new StringReader(JsonData));               try {                   // 开始解析JSON数组                   reader.beginArray();                   // 循环读取JSON中的数组                   list=new ArrayList<Contact>();                while(reader.hasNext()){                       // 开始解析JSON数组里的对象                       reader.beginObject();                       // 循环读取JSON数组中的对象                       Contact con=new Contact();                    while(reader.hasNext()){                           String tagName = reader.nextName();                           if(tagName.equals("username"));                        con.setUsername(reader.nextString());                          if(tagName.equals("num"));                        con.setPhoneNum(reader.nextString());                        /*else if(tagName.equals("num"))                            con.setPhoneNum(reader.nextString());*/                        if(tagName.equals("name")){                              con.setContact(reader.nextString());                                          }                                    }                       list.add(con);                    reader.endObject();                   }                   reader.endArray();               } catch (IOException e) {                   e.printStackTrace();               }           return list;            }}

这是想要查看解析后内容的代码:
Java code
List <Contact>ls=parseJson(s);            for(Contact con:ls){                System.out.println(con.getUsername());                System.out.println(con.getContact());                System.out.println(con.getPhoneNum());            }


报错如下:
Java code
java.lang.IllegalStateException: Expected END_OBJECT but was NAME    com.google.gson.stream.JsonReader.expect(JsonReader.java:323)    com.google.gson.stream.JsonReader.endObject(JsonReader.java:314)    JsonDemo.parsrJSON(JsonDemo.java:152)    JsonDemo.doGet(JsonDemo.java:64)    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


这是什么情况,哪位英雄帮忙看下。。。

------解决方案--------------------
你怎么这么解析?你发个邮箱出来,我给你个例子
  相关解决方案