package com.alibaba.json.bvt.annotation; import java.lang.reflect.Type; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONReader; import com.alibaba.fastjson.annotation.JSONType; import com.alibaba.fastjson.parser.DefaultJSONParser; import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer; import junit.framework.TestCase; public class CustomDeserializerTest extends TestCase { public void test_0() throws Exception { String text = "{\"xid\":1001}"; Model model = JSON.parseObject(text, Model.class); Assert.assertEquals(1001, model.id); } @JSONType(deserializer=ModelDeserializer.class) public static class Model { public int id; } public static class ModelDeserializer implements ObjectDeserializer { @Override public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) { JSONReader reader = new JSONReader(parser); reader.startObject(); String key = reader.readString(); Integer value = reader.readInteger(); Model model = new Model(); model.id = value; reader.endObject(); // TODO Auto-generated method stub return (T) model; } @Override public int getFastMatchToken() { return 0; } } }