本文介绍:
IoT Hub 消息路由功能JSON格式消息以base64编码存储到blob中的处理方式。

 

 

通过消息路由配置了一个路由到Stoage 的路由,编码格式采用了JSON格式,路由生效后,在Storage中发现消息体成了base64编码:

 

base64 编码的消息体:

 

处理方案:

在遥测消息体里对系统属性进行手动设置:

官网文档描述:https://docs.azure.cn/zh-cn/iot-hub/iot-hub-devguide-messages-d2c#azure-storage

IoT 中心支持将数据以 Apache Avro 格式和 JSON 格式写入 Azure 存储。 默认值为 AVRO。 只有在配置 Blob 存储终结点时才能设置编码格式。 不能编辑现有终结点的格式。 使用 JSON 编码时,必须在消息系统属性中将 contentType 设置为 application/json,将 contentEncoding 设置为 UTF-8 这两个值都不区分大小写。 如果未设置内容编码,则 IoT 中心将以 base 64 编码格式写入消息。

JS的示例代码如下:

 // Set message body type and content encoding 
  message.contentEncoding = "utf-8";
  message.contentType = "application/json";

 

C#示例代码如下:

message.ContentEncoding = "utf-8";
message.ContentType = "application/json";

 

验证结果如下: