001package gu.dtalk;
002
003import java.lang.reflect.Type;
004import java.util.Map;
005
006import com.alibaba.fastjson.TypeReference;
007import com.alibaba.fastjson.parser.DefaultJSONParser;
008import com.alibaba.fastjson.parser.ParserConfig;
009import com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer;
010import com.alibaba.fastjson.parser.deserializer.MapDeserializer;
011
012/**
013 * item对象反序列化实现
014 * @author guyadong
015 *
016 */
017public class ItemDeserializer extends JavaBeanDeserializer{
018        public static final ItemDeserializer instance = new ItemDeserializer();
019        public ItemDeserializer() {
020                super(ParserConfig.global, BaseItem.class);
021        }
022
023        @SuppressWarnings("unchecked")
024        @Override
025        public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
026                Map<String,Object> map = MapDeserializer.instance.deserialze(parser, 
027                                new TypeReference<Map<String,Object>>(){}.getType(), fieldName);
028                return (T) createInstance(map,null);
029        }
030
031        @Override
032        public Object createInstance(Map<String, Object> map, ParserConfig config) {
033                return ItemType.parseItem(map);
034        }
035}