cJSON使用_介绍

2024-05-27 09:32
文章标签 使用 介绍 cjson

本文主要是介绍cJSON使用_介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1 简介
  • 2下载及编译
    • 2.1 cJSON库的下载地址:
    • 2.2 编译
  • 3 重要函数简介
    • 3.1 cJSON_Parse
    • 3.2 cJSON_Delete
    • 3.3 cJSON_Print
    • 3.4 cJSON_GetObjectItem
    • 3.5 cJSON_CreateObject
    • 3.6 cJSON_CreateNumber
    • 3.7 cJSON_CreateString
    • 3.8 cJSON_CreateArray
    • 3.9 cJSON_AddItemToObject
    • 3.10 cJSON_AddItemToArray

1 简介

工作中经常使用JSON字符串进行数据传输,所以需要构造或者解析json数据,这里主要对开源的cJSON做个简单介绍,防止遗忘。

2下载及编译

2.1 cJSON库的下载地址:

https://github.com/DaveGamble/cJSON

2.2 编译

我们可以直接将cJSON编译为库或者将文件”cJSON.h” “cJSON.c”包含到自己的工程中即可。

在https://github.com/DaveGamble/cJSON 的README中,有详细介绍cJSON的用法,并且在下载的源码中有测试例程test.c,可以进行参考。

3 重要函数简介

3.1 cJSON_Parse

函数原型:

CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);

函数参数:

value:json字符串

函数返回:

返回json对象,弱失败,则返回NULL

说明:
此函数主要对传进去的数据进行解析,并返回json对象

3.2 cJSON_Delete

函数原型:

CJSON_PUBLIC(void) cJSON_Delete(cJSON *c);

函数参数:

c: json对象

函数返回:

说明:
当使用完json相关的指针后,就调用此函数,释放内存

3.3 cJSON_Print

函数原型:

CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item);

函数参数:

item:json对象

函数返回:

指向json字符串的地址指针

说明:
将json结构输出为字符串的形式

3.4 cJSON_GetObjectItem

函数原型:

CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string);

函数参数:

object:json对象指针
string:要获取的字符串

函数返回:

成功:返回指向json结构体指针
失败:NULL

说明:
获取json字符串字段值

3.5 cJSON_CreateObject

函数原型:

CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void);

函数参数:

函数返回:

说明:
创建一个json对象

3.6 cJSON_CreateNumber

函数原型:

CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num);

函数参数:

number:值

函数返回:

被创建的值的json对象

说明:
当我们想向某个json对象增加值的时候,需要先调用这个函数创建这个值的对象

3.7 cJSON_CreateString

函数原型:

CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string);

函数参数:

string:字符串值

函数返回:

被创建的值的json对象

说明:
当我们想向某个json对象增加字符串值的时候,需要先调用这个函数创建这个值的对象

3.8 cJSON_CreateArray

函数原型:

CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void);

函数参数:

函数返回:

创建数组的json指针对象

说明:
当向某个json对象中增加数组的时候,调用此函数创建数组指针

3.9 cJSON_AddItemToObject

函数原型:

CJSON_PUBLIC(void) cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item);

函数参数:

object: json对象
string: 要加入的元素的名字
item: 要加入元素的json指针

函数返回:

说明:
向object中加入一个元素

3.10 cJSON_AddItemToArray

函数原型:

CJSON_PUBLIC(void) cJSON_AddItemToArray(cJSON *array, cJSON *item);

函数参数:

array: json数组对象指针
item:要加入数组对象的对象指针

函数返回:

说明:
向数组对象中加入一个新的元素

这篇关于cJSON使用_介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007088

相关文章

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp