package com.alibaba.json.bvt.typeRef; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import junit.framework.TestCase; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; public class TypeReferenceTest2 extends TestCase { public void test_0() throws Exception { String text; { List<Bean> list = new ArrayList<Bean>(); list.add(new Bean(123, "马加爵")); list.add(new Bean(234, "药家鑫")); list.add(new Bean(456, "刘大伟")); text = JSON.toJSONString(list); } System.out.println(text); { List<Bean> list = JSON.parseObject(text, new TypeReference<List<Bean>>() {}); // 注意这里 Assert.assertEquals(3, list.size()); Assert.assertEquals(123, ((Bean) list.get(0)).getId()); Assert.assertEquals(234, ((Bean) list.get(1)).getId()); Assert.assertEquals(456, ((Bean) list.get(2)).getId()); Assert.assertEquals("马加爵", ((Bean) list.get(0)).getName()); Assert.assertEquals("药家鑫", ((Bean) list.get(1)).getName()); Assert.assertEquals("刘大伟", ((Bean) list.get(2)).getName()); } { JSONArray list = JSON.parseObject(text, new TypeReference<JSONArray>() {}); // 注意这里 Assert.assertEquals(3, list.size()); Assert.assertEquals(123, ((JSONObject) list.get(0)).get("id")); Assert.assertEquals(234, ((JSONObject) list.get(1)).get("id")); Assert.assertEquals(456, ((JSONObject) list.get(2)).get("id")); Assert.assertEquals("马加爵", ((JSONObject) list.get(0)).get("name")); Assert.assertEquals("药家鑫", ((JSONObject) list.get(1)).get("name")); Assert.assertEquals("刘大伟", ((JSONObject) list.get(2)).get("name")); } } public static class Bean { private int id; private String name; public Bean(){ } public Bean(int id, String name){ this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } }