我是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);
答案 0 :(得分:2)
您似乎只需拨打char *json_dumps(const json_t *json, size_t flags)
。
这将为您提供一个char *到一个以null结尾的字符串,表示编码的json数据。完成后你必须释放它。要获得以字节为单位的长度,您应该只能在结果上使用strlen()。
这些标志在'编码'。
下的API参考中进行了解释