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

在C语言中将JSON转换为字节数组,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(messa

我是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\u转储(const-json\u-t*json,size\u-t标志)

这将为表示编码json数据的以null结尾的字符串提供一个char*。你必须在完成后释放它。要获取字节长度,只需对结果使用strlen()


这些标志在“编码”下的API参考中进行了解释。

C字符串是“字节数组”。将字符串名称转换为无符号字符*,并根据接收者是否期望nul来检查长度是strlen()还是strlen()+1。哇,jansson文档是令人兴奋的主要示例花费99%的时间讨论git,没有关于构建和输出自己的JSON的示例,只是提取其他人。