当前位置: 首页 > news >正文

cJSON类型及type值详解

cJSON的核心结构体

         cJSON的核心结构体就是一个cJSON,理解了这个结构体,基本上对cJSON的使用就有了个基本概念了。该结构体具体定义如下:

typedef struct cJSON {

       struct cJSON*next,*prev;           /* 遍历数组或对象链的前向或后向链表指针*/

       struct cJSON *child;                   /*数组或对象的孩子节点*/

       int type;                                     /* key的类型*/

       char *valuestring;                       /*字符串值*/

       int valueint;                                /* 整数值*/

       double valuedouble;                    /* 浮点数值*/

       char *string;                               /* key的名字*/

} cJSON;


在 cJSON 库中,type 字段用于表示当前 JSON 节点的类型,其取值通常是预定义的宏常量。以下是常见的 7 种类型及其对应的 type 值(具体数值可能因 cJSON 版本略有差异,但逻辑一致):

cJSON 类型(type 取值):

  1. False(假值)
    type = 0 或 cJSON_False(宏定义通常为 0

  2. True(真值)
    type = 1 或 cJSON_True(宏定义通常为 1

  3. NULL(空值)
    type = 2 或 cJSON_NULL(宏定义通常为 2

  4. Number(数字)
    type = 3 或 cJSON_Number(宏定义通常为 3

  5. String(字符串)
    type = 4 或 cJSON_String(宏定义通常为 4

  6. Array(数组)
    type = 5 或 cJSON_Array(宏定义通常为 5

  7. Object(对象)
    type = 6 或 cJSON_Object(宏定义通常为 6


补充说明:

  • 实际使用时,建议直接使用 cJSON 提供的宏(如 cJSON_TruecJSON_Number),而非硬编码数字,以提高代码可读性和兼容性。

  • 示例代码片段:

  • if (json->type == cJSON_String) {
        printf("Value is a string: %s\n", json->valuestring);
    }

如果需要确认具体版本的宏定义,可以查看 cJSON 头文件(如 cJSON.h)。

相关文章:

  • ECharts系列: Vue 中使用 ECharts 折线图时,怎么配置来实现默认隐藏某些图例,并在用户点击图例时显示或隐藏对应的数据系列
  • MySQL的事务
  • Springboot3.x集成Spring Batch 5.2.1
  • 面试经典150题·LeetCode26·删除有序数组中的重复项·Java
  • 18.redis基本操作
  • 内积相似系数——内积度量相似系数
  • html 列表循环滚动,动态初始化字段数据
  • Android 隐藏手势模式下输入法的BackButton和ImeSwitchButton
  • Vue项目中Vuex在util引入,断点存在default
  • EI复现:蜣螂优化算法变体合集上新,改进正弦算法引导的蜣螂优化算法
  • ts中 构造器
  • 23种设计模式-结构型模式-桥接器
  • 【CF】Day20——Codeforces Round 969 (Div. 2) C
  • STM32 CAN学习(一)
  • linux-- 0. C语言过、Java半静对、Python纯动和C++对+C
  • mapState 函数的用法
  • 7.5 分治:归并:LeetCode 剑指 Offer 51.数组中的逆序对
  • docker 搭建部署知识库XWIKI
  • 【嵌入式学习3】信息安全 - SSH协议
  • JAVA反序列化深入学习(六):CommonsCollections4
  • 做网站商业欺骗赔多少/百度云网盘搜索引擎
  • 重庆南川网站制作公司哪家专业/广州网络推广
  • 达州做网站/什么是网络营销渠道
  • 临沂网站制作网站/公众号微博seo
  • 有多少个网站/百度权重排名
  • 帮别人做钓鱼网站/网店网络推广方案