【问题标题】:Microsoft Azure iot-hub: The measured senosor values sent via device to iot-hub cannot be read stored Json dataMicrosoft Azure iot-hub:通过设备发送到 iot-hub 的测量传感器值无法读取存储的 Json 数据
【发布时间】:2022-07-06 17:14:37
【问题描述】:

我们使用数据采集系统作为设备,并通过 MQTT 协议将一些信号值发送到分配给 iot-hub 的容器中。设备和 iot-hub 之间的连接运行良好,我们收到了一些 JSON 数据。当我们打开一个 JSON 数据时,我们无法读取 JSON 数据中“Body”中的温度值,因为它们是经过编码的。如果您告诉我们,我们应该如何自动将 JSON 数据转换为适当的格式,以便我们可以读取数字值,我将不胜感激?

请在 JSON 数据中找到以下三行代码。其余行相同,但编码不同。

{"EnqueuedTimeUtc":"2022-02-09T10:00:30.8600000Z","Properties":{"Sensor":""},"SystemProperties":{"connectionDeviceId":"Iba","connectionAuthMethod" :"{"scope":"device","type":"sas","issuer":"iothub","acceptingIpFilterRule":null}","connectionDeviceGenerationId":"637799949903534194","enqueuedTime":"2022- 02-09T10:00:30.8600000Z"},"正文":"My42MjI3NTQ="}

{"EnqueuedTimeUtc":"2022-02-09T10:00:30.8750000Z","Properties":{"Sensor":""},"SystemProperties":{"connectionDeviceId":"Iba","connectionAuthMethod" :"{"scope":"device","type":"sas","issuer":"iothub","acceptingIpFilterRule":null}","connectionDeviceGenerationId":"637799949903534194","enqueuedTime":"2022- 02-09T10:00:30.8750000Z"},"正文":"My42ODEyNDY="}

{"EnqueuedTimeUtc":"2022-02-09T10:00:30.9070000Z","Properties":{"Sensor":""},"SystemProperties":{"connectionDeviceId":"Iba","connectionAuthMethod" :"{"scope":"device","type":"sas","issuer":"iothub","acceptingIpFilterRule":null}","connectionDeviceGenerationId":"637799949903534194","enqueuedTime":"2022- 02-09T10:00:30.9070000Z"},"正文":"My43Mzk1OTI="}

提前致谢!

溴 马苏德

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: json azure mqtt azure-iot-hub


【解决方案1】:

您应该在消息主题中添加两个参数,例如内容类型(ct)和内容编码(ce),如下例所示:

 devices/device1/messages/events/$.ct=application%2Fjson&$.ce=utf-8

【讨论】:

  • 感谢您的回复。我看不到任何地方可以在设备的设置中添加这些参数。我可以在设置中看到“基本主题路径:设备/iotdevice/messages/events”,当我添加您的代码时,连接不再起作用。我应该在 Microsoft azure 中添加它吗?如果是的话,你能告诉我在哪里吗?马苏德兄弟
  • 根据你的消息,deviceId是Iba,所以你的Topic设置应该是:devices/Iba/messages/events/$.ct=application%2Fjson& $.ce=utf-8
  • 另一种填充这些消息属性的方法是在您的设备代码中,当发送遥测数据时(在主题上发布)
  • 对不起,在回复你的时候,我写错了设备名称。我试过了,不幸的是它不起作用。当我尝试它时,我收到一个错误并且连接不再起作用。数据采集​​系统的设置中有一些窗口和参数,没有代码可以添加你的代码。
  • 我们可以更改 Iot-hub 中的 JSON 代码吗?当我们得到消息时,然后将它们转换并存储在容器中?
【解决方案2】:

@Masoud22- 你能解决这个问题吗?我也面临同样的问题,如果您能提供相同的解决方案。

提前谢谢你 阿尔瓦

【讨论】:

    猜你喜欢
    • 2016-01-07
    • 1970-01-01
    • 2018-06-28
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多