我是 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)
。
这将为您提供一个 char * 到表示编码的 json 数据的空终止字符串。完成后必须释放它。要获得以字节为单位的长度,您应该能够简单地对结果使用 strlen()。
这些标志在“编码”下的 API 引用中进行了解释。
关于在 C 中将 JSON 转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40102244/