我的情况是:解析第一层数据成功,解析第二层嵌套的数据失败。如:

{
  "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。同时内部类也一定要序列化。

 

posted on 2016-12-19 17:25  灯火、阑珊处  阅读(6631)  评论(0编辑  收藏  举报