FreeRTOS中使用Jansson

Jansson是一个基于C语言的JSON库,最新的文档请看这个链接

在FreeRTOS任务里使用的时候要注意分配给任务足够的内存空间以及Jansson内存的申请和释放,否则可能会出现组装JSON对象错误。

代码示例如下:

#include <jansson.h>

/*
 ...
*/

void TestTask(void const * argument)
{
  /* USER CODE BEGIN Task */
   
    json_set_alloc_funcs(pvPortMalloc, vPortFree);//设置内存分配和释放函数
    int err = 0;
    json_t* root;  
    root = json_object();
    char* pString;
    
    /* Infinite loop */
    for(;;)                                                
    { 
     
        err = json_object_set_new(root, "v1", json_integer(value1));
        if(err !=0 )   printf("v1 json_object_set_new error! \r\n");  

        err = json_object_set_new(root, "v2", json_integer(value2));
        if(err !=0 )    printf("v2 json_object_set_new error! \r\n");            
        
        err = json_object_set_new(root, "v3", json_integer(value3));
        if(err !=0 )    printf("v3 json_object_set_new error! \r\n"); 
            
        /*
          ...
        */

        printf("json_object_size= %d \r\n", json_object_size(root));
                 
        pString = json_dumps(root, JSON_ENCODE_ANY);
        json_object_clear(root);
        printf("%s\n", pString);
        vPortFree(pString);            
     }
}
        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值