STM32(Json的打包和接收解析——作为工具取用即可)

因为要做一个stm32的示波器,进而发现了一篇博客,里面的数据传输使用了json的格式,便去学习了json格式的解读,因此下位机的发送数据的方式要进行一部分的改变

因为思想过于简单明了,便不再赘述

发送部分

static uint8_t number_data=0;
void json_pack(void)
{
    cJSON * usr;
    char *data;
    number_data=number_data+1;	//模拟数字
    if(number_data>100)
    {
        number_data=0;
    }
    usr=cJSON_CreateObject();   //创建根数据对象
    cJSON_AddItemToObject(usr, "A", cJSON_CreateNumber(number_data));  //根节点下添加数字
    cJSON_AddItemToObject(usr, "B", cJSON_CreateString("hello"));			 //根节点下添加字符
    cJSON_AddItemToObject(usr, "C", cJSON_CreateString("帅"));			 		//根节点下添加汉字
    data = cJSON_Print(usr);   //将json形式打印成正常字符串形式(带有\r\n)
//	    data = cJSON_PrintUnformatted(usr);   //将json形式打印成正常字符串形式(没有\r\n)
    printf("%s",data);			//通过串口打印出来
/********************/
/*		释放内存				*/
/*********************/
    cJSON_Delete(usr);
    free(data);
}

接收解析部分

void json_analysis()
{

    cJSON *json,*json_one,*json_two,*json_three;
    char* out="{\"one\":\"long\",\"two\":\"2\",\"three\":3}";
 
    json = cJSON_Parse(out); //将得到的字符串解析成json形式
    /****************************/
    /*	  测试将JSON打印出来	*/
    /***************************/
   //char *out_data = cJSON_Print(json);   //将json形式打印成正常字符串形式
   //printf("%s",out_data);

    json_one = cJSON_GetObjectItem( json , "one" );  //从json获取键值内容
    json_two = cJSON_GetObjectItem( json , "two" );//从json获取键值内容
    json_three = cJSON_GetObjectItem( json , "three" );//从json获取键值内容
 
    printf("\r\none:%s   two:%d   three:%d",json_one->valuestring,json_two->valueint,json_three->valueint);
 
    cJSON_Delete(json);  //释放内存 
}

 

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值