我对JSON和jansson还不熟悉。我正在尝试使用jansson库创建JSON格式的消息,并使用UDP发送。需要字节数组。缓冲区和消息长度(字节)。我试过使用json_object_size()。但它只返回对象中的元素数。请给我一个前进的方向。
json_t *messagebody = json_object();
json_object_set_new(messagebody, "request_id", request_id);
json_object_set_new(messagebody, "process_id", json_string(process_id));
json_object_set_new(messagebody, "process_server_id", json_string(process_server_id));
json_object_set_new(messagebody, "ip_address", json_string(my_ip_address));
json_object_set_new(messagebody, "action", action);
最佳答案
似乎你只是打电话给char *json_dumps(const json_t *json, size_t flags)
。
这将给您一个字符*到一个以空结尾的字符串,表示编码的json数据。你必须在做完后把它放出来。要获得字节长度,只需对结果使用strlen()即可。
这些标志在“encoding”下的API引用中解释。