2017-02-24 104 views
0

最近,我发了一篇关于我在azure中的路由未被接受的文章。我发现它与我使用的json格式有关,但我不知道为什么。 Json验证工具表示我的json格式是有效的,但Azure说这不是我测试路由时的情况。Azure不接受用于在物联网集线器中路由的json格式

我的路由假定在水平= “关键” 过滤

{ 
    "devicemessage": { 
    "appProperties": { 
     "processingPath": "<optional>", 
     "verbose": "<optional>", 
     "severity": "<optional>", 
     "level":"critical", 
     "testDevice": "<optional>" 
    } 
    } 
} 

这从天青示例被采纳:

的json消息以下列方式:

{"guid":"f7410833-7a8c-485a-8cfd-89285fc04256", 
"deviceName":"Bmp280Sensor", 
"tempSensorValue":23.5826187, 
"pressureSensorValue":101344.492, 
"altitudeSensorValue":-1.42682791, 
"measurementTime":"2017-02-24T02:45:13.5858506-08:00", 
"measurename":"LightSensor", 
"level":"critical"} 

但是,当我尝试在天蓝色的门户中测试它时,它会说:

“y我们的设备信息格式不正确。“

其他检查工具接受我的json格式。有人明白为什么我的JSON信息不被天蓝色的IOT集线器接受吗?

回答

0

是的,它看起来像一个格式问题。如上面显示我明白,但我似乎不明白为什么Azure的需要为它这样工作的格式

{ 
    "devicemessage": { 
    "appProperties": { 
     "guid":"f7410833-7a8c-485a-8cfd-89285fc04256", 
     "deviceName":"Bmp280Sensor", 
     "tempSensorValue":23.5826187, 
     "pressureSensorValue":101344.492, 
     "altitudeSensorValue":-1.42682791, 
     "measurementTime":"2017-02-24T02:45:13.5858506-08:00", 
     "measurename":"LightSensor", 
     "level":"critical" 
    } 
    } 
} 
+0

是: 你可以试试这个。 – Tvt

+0

[消息路由条件使用与设备孪生查询和设备作业相同的查询语言。](https://azure.microsoft.com/zh-cn/blog/azure-iot-hub-message-routing-enhances-device- telemetry-and-optimizes-iot-infrastructure-resources /)你可以参考[查询语言](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-query-language ),[设备双胞胎](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-device-twins)和[设备作业](https://docs.microsoft .COM/EN-US /天蓝色/ IOT-集线器/ IOT - 轮毂devguide的作业)。恐怕这是为了一致性而设计的。 –

+0

好的,这就是我需要找到的。至于问题是,我已经修复它,但这更有意义:) – Tvt

相关问题