Использование строки JSON в mosquitto_publish
Использование клиентской библиотеки C (libmosquitto)
Как опубликовать эту строку JSON для брокера комаров MQTT
"book":[
{"Name":"xyz", "price":"5.00"},
{"Name":"abc", "price":"10.00"},
{"Name":"hello world", "price":"15.00"}
]}
using this function.
mosquitto_publish(mosq, NULL, "xyz", 10, "5.00", 2, false);
int mosquitto_publish( mosq, mid, topic, payloadlen, payload, qos, retain);
1 ответ
Поздний ответ, но вы бы сделали так:
#include <json-c/json.h>
json_object *jobjr = json_object_new_object();
json_object *jattr = json_object_new_object();
json_object *jid = json_object_new_string(id);
json_object_object_add(jattr, "id", jid);
json_object_object_add(jobjr, "report", jattr);
const char *report = json_object_to_json_string(jobjr);
mosquitto_publish(mosq, 0, options.status_topic, strlen(report), report, 1, false);
json_object_put(jobjr);
Ключ должен преобразовать объект JSON в строку, используя json_object_to_json_string
, Это если вы используете libjson конечно.