001package gu.dtalk; 002 003import com.alibaba.fastjson.TypeReference; 004import com.alibaba.fastjson.parser.ParserConfig; 005import com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer; 006 007import gu.simplemq.json.FastJsonInitializer; 008 009/** 010 * fastjson的全局初始化设置 011 * @author guyadong 012 * 013 */ 014public class ItemInitializer implements FastJsonInitializer { 015 016 public ItemInitializer() { 017 } 018 019 @Override 020 public void init() { 021 // 增加对Ack对象的序列化支持 022 ParserConfig.global.putDeserializer(new TypeReference<Ack<?>>(){}.getType(), new JavaBeanDeserializer(ParserConfig.global, Ack.class)); 023 ParserConfig.global.putDeserializer(new TypeReference<Ack<String>>(){}.getType(), new JavaBeanDeserializer(ParserConfig.global, Ack.class)); 024 ParserConfig.global.putDeserializer(new TypeReference<Ack<BaseItem>>(){}.getType(), new JavaBeanDeserializer(ParserConfig.global, Ack.class)); 025 // 增加对 item 序列化支持 026 ParserConfig.global.putDeserializer(BaseItem.class, ItemDeserializer.instance); 027 ParserConfig.global.putDeserializer(CmdItem.class, new JavaBeanDeserializer(ParserConfig.global, CmdItem.class)); 028 ParserConfig.global.putDeserializer(MenuItem.class, new JavaBeanDeserializer(ParserConfig.global, MenuItem.class)); 029 030 // 增加对 option 序列化支持 031 ParserConfig.global.putDeserializer(Base64Option.class, new JavaBeanDeserializer(ParserConfig.global, Base64Option.class)); 032 ParserConfig.global.putDeserializer(MACOption.class, new JavaBeanDeserializer(ParserConfig.global, MACOption.class)); 033 ParserConfig.global.putDeserializer(IPv4Option.class, new JavaBeanDeserializer(ParserConfig.global, IPv4Option.class)); 034 ParserConfig.global.putDeserializer(Base64Option.class, new JavaBeanDeserializer(ParserConfig.global, Base64Option.class)); 035 ParserConfig.global.putDeserializer(BoolOption.class, new JavaBeanDeserializer(ParserConfig.global, BoolOption.class)); 036 ParserConfig.global.putDeserializer(CheckOption.class, new JavaBeanDeserializer(ParserConfig.global, CheckOption.class)); 037 ParserConfig.global.putDeserializer(DateOption.class, new JavaBeanDeserializer(ParserConfig.global, DateOption.class)); 038 ParserConfig.global.putDeserializer(FloatOption.class, new JavaBeanDeserializer(ParserConfig.global, FloatOption.class)); 039 ParserConfig.global.putDeserializer(IntOption.class, new JavaBeanDeserializer(ParserConfig.global, IntOption.class)); 040 ParserConfig.global.putDeserializer(StringOption.class, new JavaBeanDeserializer(ParserConfig.global, StringOption.class)); 041 ParserConfig.global.putDeserializer(SwitchOption.class, new JavaBeanDeserializer(ParserConfig.global, SwitchOption.class)); 042 ParserConfig.global.putDeserializer(UrlOption.class, new JavaBeanDeserializer(ParserConfig.global, UrlOption.class)); 043 ParserConfig.global.putDeserializer(PasswordOption.class, new JavaBeanDeserializer(ParserConfig.global, PasswordOption.class)); 044 ParserConfig.global.putDeserializer(ImageOption.class, new JavaBeanDeserializer(ParserConfig.global, ImageOption.class)); 045 046 } 047 048}