cJSON源码学习总结

JSON介绍

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,可以把 JSON 的结构理解成无序的、可嵌套的 key-value 键值对集合,这些 key-value 键值对以结构体或数组的形式来组织的。同一级的 key-value 键值对之间用一个,(逗号) 隔开,每个 key-value 键值对是由一个 key 后面紧接一个:(冒号),冒号后面是这个 key 对应的 value。key 是一个 word,由大小写字母、下划线及数字组成,可以由双引号封闭,也可以不用双引号。而 value 的取值集为: number、boolean(true、false)、null、string、object 和 array。而cJSON则是一个用C 语言写JSON 解析库,特点就是一个简洁。

简单了解cJSON的功能

创建JSON数据

void create_json(const char *filename)//参数为输出文件名
{
    printf("----------------create json start-----------------------------\n");
    //组JSON
    cJSON *root_json = cJSON_CreateObject();
    cJSON *data_json = cJSON_CreateObject();
    cJSON_AddItemToObject(root_json, "data", data_json);//基本的条目添加方法

    //  原子条目创建&添加
    //  cJSON_AddItemToObject(data_json, "Null", cJSON_CreateNull());
    //  cJSON_AddItemToObject(data_json, "True", cJSON_CreateTrue());
    //  cJSON_AddItemToObject(data_json, "False", cJSON_CreateFalse());
    //  cJSON_AddItemToObject(data_json, "bool", cJSON_CreateBool(-1));//不等于0,true
    //  cJSON_AddItemToObject(data_json, "double", cJSON_CreateNumber(1.1));
    //  cJSON_AddItemToObject(data_json, "string", cJSON_CreateString("strings"));
    //  一些直接的添加条目的方法,其实是通过宏添加对cJSON_AddItemToObject的参数实现
    cJSON_AddNullToObject(data_json, "Null");
    cJSON_AddTrueToObject(data_json, "True");
    cJSON_AddFalseToObject(data_json, "False");
    cJSON_AddBoolToObject(data_json, "bool", 0); //等于0,false
    cJSON_AddNumberToObject(data_json, "double", 2.2);
    cJSON_AddStringToObject(data_json, "string", "strings");

    //  数组条目创建&添加
    cJSON *total_array = cJSON_CreateArray();
    cJSON_AddItemToObject(root_json, "array", total_array);//基本的条目添加方法
    int i[] = {
  1, 2, 3};
    float f[] = {
  1.2, 2.2<
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值