package com.alibaba.json.bvt.issue_1100; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import junit.framework.TestCase; import java.util.ArrayList; import java.util.List; /** * Created by wenshao on 19/04/2017. */ public class Issue1151 extends TestCase { public void test_for_issue() throws Exception { A a = new A(); a.list.add(new C(1001)); a.list.add(new C(1002)); String json = JSON.toJSONString(a, SerializerFeature.NotWriteRootClassName, SerializerFeature.WriteClassName); assertEquals("{\"list\":[{\"@type\":\"com.alibaba.json.bvt.issue_1100.Issue1151$C\",\"id\":1001},{\"@type\":\"com.alibaba.json.bvt.issue_1100.Issue1151$C\",\"id\":1002}]}", json); A a2 = JSON.parseObject(json, A.class); assertSame(a2.list.get(0).getClass(), C.class); } public static class A { public List<B> list = new ArrayList<B>(); } public static interface B { } public static class C implements B { public int id; public C() { } public C(int id) { this.id = id; } } }