如何将数据作为 JSON 对象发送到 MQTT 代理

How to Send data as JSON objects over to MQTT broker

我在 ubuntu 上使用 eclipse paho 客户端并尝试将纬度、经度和时间戳信息以 JSON 格式发送到 MQTT 代理。我该怎么做?

我找到了这篇文章,但它并不完整。


您只需将 JSON 对象创建为字符串,然后对该字符串调用 getBytes() 以获取字节数组以用作消息中的有效负载。

1
2
3
 MqttMessage message = new MqttMessage();
 message.setPayload("{foo: bar, lat: 0.23443, long: 12.3453245}".getBytes());
 client.publish("foo", message);


我不知道,但我用他的:

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/python
import json
import paho.mqtt.client as mqtt


send_msg = {
        'data_to_send': variable1,
        'also_send_this': variable2
}

client.publish("topic", payload=json.dumps(send_msg), qos=2, retain=False)

如果您使用的是 JavaScript,则可以使用:

1
client.publish("foo", JSON.stringify({"foo": bar,"baz": 123})) // on sender side, and

JSON.parse 在接收端。