JacksonEncoder.java
966 字节
/**
*
*/
package com.waylau.netty.demo.codec.jackcon;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufOutputStream;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;
/**
* 说明:Jackson json 编码器
*
* @author <a href="http://www.waylau.com">waylau.com</a> 2015年11月9日
*/
public class JacksonEncoder extends MessageToByteEncoder<Object> {
@Override
protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out)
throws Exception {
ObjectMapper mapper = JacksonMapper.getInstance(); // create once, reuse
// byte[] body = mapper.writeValueAsBytes(msg); // 将对象转换为byte
// out.writeBytes(body); // 消息体中包含我们要发送的数据
ByteBufOutputStream byteBufOutputStream = new ByteBufOutputStream(out);
mapper.writeValue(byteBufOutputStream, msg);
}
}