在 C 中将 JSON 转换为字节数组

标签 c json

我是 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/

相关文章:

c - 如何将 C 编译器安装到 Eclipse?

使用 Vex RobotC 控制循环中的端口

c -/proc/partitions 主要和次要编号以检测物理磁盘和分区

C 组合日期和时间值

php - 如果未传递数组,则使用正则表达式文件

java - 客户端响应Application.Json

c# - 自适应卡 - 嵌套方案

c - WINAPI:按 NT 名称获取设备列表

javascript - 当回调是事件函数时 d3 中的变量范围

javascript - jstree 图标以及如何 'click to expand'