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}