content: 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
               */
          }
      }
  }
  