去d或不去d,有什么意义?

To d or not to d, what is the point?

一些 Watson IoT 示例在设备有效负载中使用 d {"d":{"temp":20}}。正如这里的 embedded c: :

"{\"d\" : {\"temp\" : 34 }}"

其他人不使用这个d,他们只是发送格式{"temp":20}。像这样java sample:

//Generate a JSON object of the event to be published
                  JsonObject event = new JsonObject();
                  event.addProperty("name", "foo");
                  event.addProperty("cpu",  90);
                  event.addProperty("mem",  70);

两者都有效,但我遇到过由于下游应用程序失败而不得不放入 d 的情况 - 他们说这是 api 规范的一部分。我找不到它实际上是任何规范的一部分。去d还是不去d,这是个问题?

所有数据都在顶级 "d" 元素下携带,并且存在一个可选的 "ts" 元素,其中包含消息的时间戳。如果不存在 ts 元素,则时间戳默认为收到消息的时间。

据物联网团队的 Bryan 说 here:

IoT Foundation doesn't explicitly require a "d" top-level property in the JSON payload, however it does encourage this format to allow IoT Foundation to make some assumptions about how data is organized in the payload. If the IoT Foundation payload format is not followed, we refer to this as a "custom payload" in our documentation. IoT Foundation will allow you to publish a custom payload...