我的情况是:解析第一层数据成功,解析第二层嵌套的数据失败。如:
{ "response": { "resultcode": "0", "errormsg": "查询成功", "poifrid": "3535353", "cardno": "545353535", "name": "gesrresge", "sex": "1", "birthday": "refwrefwr", "cardstatus": "0", "identityid": "6464646", "phone": "4353422" } }
TestPerson person2 = JSON.parseObject(jsonObj.toString().toLowerCase(), TestPerson.class);
我的解决方法是:
1、检查内部类是不是static的。
2、检查有没有写构造方法。
3、先将bean对象转化成json字符串输出,将json字符串和自己的字符串做对比,看看哪里不一样。
TestPerson.Response response2 = new TestPerson.Response(); response2.setSex("56"); response2.setName("rg4g"); response2.setSex("565"); response2.setBirthday("190231313"); response2.setCardno("t4t43t"); response2.setCardstatus("3ffg3"); response2.setErrormsg("uj67j764"); response2.setIdentityid("54gg4"); response2.setPatientid("99707"); response2.setPhone("5t4t45"); response2.setResultcode("0"); TestPerson person = new TestPerson(); person.setResponse(response2); Log.e("bean2json-string:",JSON.toJSONString(person));
TestPerson.java如下:
package com.kevinchan.fangding.Fragment; import android.util.Log; import java.io.Serializable; /** * Created by Jackie on 2016/12/13. */ public class TestPerson implements Serializable { public TestPerson() { // setResponse2(this.Response2); } private Response response; public void setResponse(Response response){ this.response = response; } public Response getResponse(){ return this.response; } public static class Response { public Response(){ } private String resultcode; private String errormsg; private String patientid; private String cardno; private String name; private String sex; private String birthday; private String cardstatus; private String identityid; private String phone; public void setResultcode(String resultcode){ this.resultcode = resultcode; } public String getResultcode(){ return this.resultcode; } public void setErrormsg(String errormsg){ this.errormsg = errormsg; } public String getErrormsg(){ return this.errormsg; } public void setPatientid(String patientid){ this.patientid = patientid; } public String getPatientid(){ return this.patientid; } public void setCardno(String cardno){ this.cardno = cardno; } public String getCardno(){ return this.cardno; } public void setName(String name){ this.name = name; } public String getName(){ return this.name; } public void setSex(String sex){ this.sex = sex; } public String getSex(){ return this.sex; } public void setBirthday(String birthday){ this.birthday = birthday; } public String getBirthday(){ return this.birthday; } public void setCardstatus(String cardstatus){ this.cardstatus = cardstatus; } public String getCardstatus(){ return this.cardstatus; } public void setIdentityid(String identityid){ this.identityid = identityid; } public String getIdentityid(){ return this.identityid; } public void setPhone(String phone){ this.phone = phone; } public String getPhone(){ return this.phone; } } }
注意:bean对象传递时类要序列化,实现Serializable类。implements Serializable。同时内部类也一定要序列化。