package cn.iocoder.yudao.module.iot.gateway.serialize.json;
|
|
import cn.hutool.core.lang.Assert;
|
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
import cn.iocoder.yudao.module.iot.core.enums.IotSerializeTypeEnum;
|
import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
|
import cn.iocoder.yudao.module.iot.gateway.serialize.IotMessageSerializer;
|
|
/**
|
* JSON 格式的消息序列化器
|
*
|
* 直接使用 JsonUtils 序列化/反序列化 {@link IotDeviceMessage},不包装额外字段
|
*
|
* @author 芋道源码
|
*/
|
public class IotJsonSerializer implements IotMessageSerializer {
|
|
@Override
|
public IotSerializeTypeEnum getType() {
|
return IotSerializeTypeEnum.JSON;
|
}
|
|
@Override
|
public byte[] serialize(IotDeviceMessage message) {
|
Assert.notNull(message, "消息不能为空");
|
return JsonUtils.toJsonByte(message);
|
}
|
|
@Override
|
public IotDeviceMessage deserialize(byte[] bytes) {
|
Assert.notNull(bytes, "待解码数据不能为空");
|
IotDeviceMessage message = JsonUtils.parseObject(bytes, IotDeviceMessage.class);
|
Assert.notNull(message, "消息解码失败");
|
return message;
|
}
|
|
}
|