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

时间:2016-10-18 07:36:48

标签: 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);

1 个答案:

答案 0 :(得分:2)

您似乎只需拨打char *json_dumps(const json_t *json, size_t flags)

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

这些标志在'编码'。

下的API参考中进行了解释