package com.alibaba.json.bvt.bug;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializerFeature;
import junit.framework.TestCase;
import java.lang.reflect.Field;
import java.util.List;
/**
* Created by wenshao on 16/01/2017.
*/
public class Issue998 extends TestCase {
public void test_for_issue() throws Exception {
Model model = JSON.parseObject("{\"items\":[{\"id\":123}]}", Model.class);
assertNotNull(model);
assertNotNull(model.items);
assertEquals(1, model.items.size());
assertEquals(123, model.items.get(0).getId());
String json = JSON.toJSONString(model, SerializerFeature.NotWriteRootClassName, SerializerFeature.WriteClassName);
assertEquals("{\"items\":[{\"id\":123}]}", json);
}
public void test_for_issue_1() throws Exception {
Field field = Model.class.getField("items");
List<Item> items = (List<Item> ) JSON.parseObject("[{\"id\":123}]", field.getGenericType());
assertNotNull(items);
assertEquals(1, items.size());
assertEquals(123, items.get(0).id);
}
public static class Model {
public List<? extends Item> items;
}
public static class Item {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
}