package com.alibaba.json.bvt.bug; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.json.bvt.bug.Bug_for_issue_569.LoginResponse.Body; import com.alibaba.json.bvt.bug.Bug_for_issue_569.LoginResponse.MemberInfo; import junit.framework.TestCase; public class Bug_for_issue_569 extends TestCase { public void test_for_issue() throws Exception { LoginResponse loginResp = new LoginResponse(); loginResp.response = new Response<LoginResponse.Body>(); loginResp.response.content = new Body(); loginResp.response.content.setMemberinfo(new MemberInfo()); loginResp.response.content.getMemberinfo().name = "ding102992"; loginResp.response.content.getMemberinfo().email = "ding102992@github.com"; String text = JSON.toJSONString(loginResp); LoginResponse loginResp2 = JSON.parseObject(text, LoginResponse.class); Assert.assertEquals(loginResp.response // .getContent() // .getMemberinfo().name, // loginResp2.response // .getContent() // .getMemberinfo().name); Assert.assertEquals(loginResp.response // .getContent().getMemberinfo().email, // loginResp2.response.getContent().getMemberinfo().email); } public static class BaseResponse<T> { public Response<T> response; } public static class Response<T> { private T content; public T getContent() { return content; } public void setContent(T content) { this.content = content; } } public static class LoginResponse extends BaseResponse<LoginResponse.Body> { public static class Body { private MemberInfo memberinfo; public MemberInfo getMemberinfo() { return memberinfo; } public void setMemberinfo(MemberInfo memberinfo) { this.memberinfo = memberinfo; } } public static class MemberInfo { public String name; public String email; /* * 省略Getter,Setter */ } } }