我是靠谱客的博主 慈祥嚓茶,最近开发中收集的这篇文章主要介绍stm32实现json格式传输/ cjson使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

cjson是一个开源的C文件,可以实现用C语言生成json格式数据,

目录

    • 步骤1:准备工作
    • 步骤2:cjson函数简单讲解
    • 步骤3:一个例子, 生成json格式数据

步骤1:准备工作

在keil里添加cjson.c和cjson.h,cjson文件下载,使用微云,不要积分

main.c里引用cjson.h

#include <I:cjsontest_cjsoncJSON.h>

步骤2:cjson函数简单讲解

首先需要创建一个cjson的指针,用于存储数据,

cJSON *cjson_head=NULL;

然后使用添加函数,添加数字和字符要使用不同的函数,

#添加字符
cJSON_AddStringToObject(cjson_head, "name", "mculover666");
#添加数字
cJSON_AddNumberToObject(cjson_head,"age",22);

完成后,想使用json时,因为是一个指针,无法直接使用,需要用一个字符串接收格式化后的json格式

char *str=NULL;
str = cJSON_Print(cjson_head);
printf("%sn", str);

此时,直接使用str即可,通过串口输出或者通过4G发送,MQTT发送等等。
更复杂的,json格式可以嵌套,这会在步骤3里展示。

步骤3:一个例子, 生成json格式数据

#include <I:cjsontest_cjsoncJSON.h>
#include <stdio.h>

#创建cjson的指针,用于存储数据,可以创建多个
cJSON *cjson_head=NULL;
cJSON *cjson_address=NULL;
cJSON *cjson_skill=NULL;
char *str=NULL;



int main()
{
    cjson_head=cJSON_CreateObject();
    // add string to cjson
    cJSON_AddStringToObject(cjson_head, "name", "mculover666");

    //add number to cjson
    cJSON_AddNumberToObject(cjson_head,"age",22);

    //add float to cjson
    cJSON_AddNumberToObject(cjson_head, "weight", 55.5);

        /* 添加一个嵌套的JSON数据(添加一个链表节点) */
    cjson_address = cJSON_CreateObject();
    cJSON_AddStringToObject(cjson_address, "country", "China");
    cJSON_AddNumberToObject(cjson_address, "zip-code", 111111);
    cJSON_AddItemToObject(cjson_head, "address", cjson_address);

    /* 添加一个数组类型的JSON数据(添加一个链表节点) */
    cjson_skill = cJSON_CreateArray();
    cJSON_AddItemToArray(cjson_skill, cJSON_CreateString( "C" ));
    cJSON_AddItemToArray(cjson_skill, cJSON_CreateString( "Java" ));
    cJSON_AddItemToArray(cjson_skill, cJSON_CreateString( "Python" ));
    cJSON_AddItemToObject(cjson_head, "skill", cjson_skill);

    /* 添加一个值为 False 的布尔类型的JSON数据(添加一个链表节点) */
    cJSON_AddFalseToObject(cjson_head, "student");

    /* 打印JSON对象(整条链表)的所有数据 */
    str = cJSON_Print(cjson_head);
    printf("%sn", str);

    return 0;

}

运行结果为

{
        "name": "mculover666",
        "age":  22,
        "weight":       55.5,
        "address":      {
                "country":      "China",
                "zip-code":     111111
        },
        "skill":        ["C", "Java", "Python"],
        "student":      false
}

如果有帮到你,请点个赞。

最后

以上就是慈祥嚓茶为你收集整理的stm32实现json格式传输/ cjson使用的全部内容,希望文章能够帮你解决stm32实现json格式传输/ cjson使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部