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

use*_*081 10 json mqtt paho

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

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

har*_*llb 15

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

 MqttMessage message = new MqttMessage();
 message.setPayload("{foo: bar, lat: 0.23443, long: 12.3453245}".getBytes());
 client.publish("foo", message);
Run Code Online (Sandbox Code Playgroud)

  • 您最好使用 String.getBytes(StandardCharsets.UTF_8) 因为如果您不指定字符集,它将使用您的平台默认值,可能不是 UTF-8(JSON 通常是 UTF-8) (2认同)

use*_*843 5

我对此一无所知,但我使用他的:

#!/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)
Run Code Online (Sandbox Code Playgroud)