package com.alibaba.json.bvt.bug;
import java.util.Arrays;
import java.util.List;
import com.alibaba.fastjson.parser.ParserConfig;
import org.junit.Assert;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import junit.framework.TestCase;
public class Bug_for_issue_415 extends TestCase {
protected void setUp() throws Exception {
ParserConfig.global.addAccept("com.alibaba.json.bvt.bug.Bug_for_issue_415.");
}
public void test_for_issue() throws Exception {
Teacher t = new Teacher();
Address addr = new Address();
addr.setAddrDetail("中国上海南京路");
Student s1 = new Student();
s1.setName("张三");
s1.setAddr(addr);
Student s2 = new Student();
s2.setName("李四");
s2.setAddr(addr);
t.setStudentList(Arrays.asList(s1, s2));
String json = JSON.toJSONString(t,SerializerFeature.WriteClassName);
//@1 打印序列化的时候json串
Teacher t2 = (Teacher) JSON.parse(json);
for (Student s : t2.getStudentList()) {
Assert.assertNotNull(s);
Assert.assertNotNull(s.getAddr());
}
}
public static class Teacher {
private List<Student> studentList;
public List<Student> getStudentList() {
return studentList;
}
public void setStudentList(List<Student> studentList) {
this.studentList = studentList;
}
}
public static class Address {
private String addrDetail;
public String getAddrDetail() {
return addrDetail;
}
public void setAddrDetail(String addressDetail) {
this.addrDetail = addressDetail;
}
}
public static class Student {
private String name;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddr() {
return address;
}
public void setAddr(Address address) {
this.address = address;
}
}
}