1、构造json对象;2、向对象中添加元素;3、获取对象中元素;4、获取元素的值;5、json对象与数组互转;6、释放json对象空间;

从官网直接下载cJSON源文件,添加到工程中即可。

char jssd_def[256];

1、构造json对象;

cJSON* root = NULL;

cJSON* item = NULL;

item = cJSON_CreateObject();

root = cJSON_CreateObject();

2、向对象中添加元素;

1、将对象作为元素进行添加:

cJSON_AddItemToObject(item, "name", cJSON_CreateString("xiaopeng"));

cJSON_AddItemToObject(item,"age",cJSON_CreateNumber(21));

cJSON_AddItemToObject(root,"root",item);

2、直接添加元素:

cJSON_AddItemToObject(root,"ID",cJSON_CreateNumber(1));

3、获取对象中元素;

root = cJSON_Parse(jssd_def);
item = cJSON_GetObjectItem(root, "root");

4、获取元素的值;

cJSON* age = NULL;

age = cJSON_GetObjectItem(item, "age");

printf( "age=%d\r\n", age->valueint );

5、json对象与数组互转;

1、json对象转字符串

sprintf(jssd_def, "%s", cJSON_Print(root));//带格式化\n\t

sprintf(jssd_def, "%s", cJSON_PrintUnformatted(root));//不带格式

2、字符串转json对象

root = cJSON_Parse(jssd_def);

6、释放json对象空间;

如果使用cJSON_Delete(cJSON *c);进行对象释放:当一个对象是另一个对象的元素时,只调用外层对象释放,否则会出现硬件错误;如果内层对象被释放,再释放外层对象,也会出现硬件错误。如果不放心,则可以直接使用free进行多次释放。

//cJSON_Delete( root );等价于{free( item );free( root );}
 //警告:使用cJSON_Delete( root );则不能使用cJSON_Delete( item );
 cJSON_Delete( root );

cJSON基本使用方法相关推荐

  1. c语言组json包,json格式解析和libjson的用法介绍(关于cjson的使用方法)

    在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据格式:JSON与XML.本文主要介绍JSO ...

  2. cJSON的使用方法

    首先,要介绍一下什么是json格式. 一.JSON格式简述 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.它 ...

  3. 开源项目学习:cJSON库的学习和使用(上)---以天气JSON数据为例

    目录 1. cJSON源码的获取 2. JSON 的认识 3. 实践 3.1 解析一个 JSON 对象,获取其中项目(实时天气数据解析) 3.2 解析一个 JSON 数组,获取其中项目(未来或历史天气 ...

  4. c语言解析json代码举例,CJSON 实例

    cJSON: 一个用c写的一个简单好用的JSON解析器 cJSON库 1.json的数据结构 c语言中json数据是采用链表存储的 typedef struct cJSON { struct cJSO ...

  5. stm32f103zet6实现HTTP协议请求,UTF-8转码JSON打包上传

    概述: 最近在做一个项目,需要用stm32f103zet6开发板走HTTP协议,向疲劳驾驶检测设备发送请求消息,使其下发人脸识别的图片或参数信息,开发板进行接收,要求如下: 1. 开发板作为客户端.疲 ...

  6. axis2 默认端口_基于 AXIS2/C 的 C 语言库实现对提供 REST API 的系统进行数据访问...

    基于 AXIS2/C 的 C 语言库实现对提供 REST API 的系统进行数据访问 宋 东平 和 赵 健 2013 年 3 月 07 日发布 AXIS2/C 简介和 REST 及 REST API ...

  7. Nginx学习笔记——下篇

    文章目录 Nginx实现服务器端集群搭建 Nginx与Tomcat部署 环境准备(Tomcat) 环境准备(Nginx) Nginx实现动静分离 需求分析 动静分离实现步骤 Nginx实现Tomcat ...

  8. Lua+OpenResty快速入门

    Lua+OpenResty快速入门 Lua 概念 特性 应用场景 Lua的安装 Lua的语法 第一个Lua程序 Lua的注释 标识符 关键字 运算符 全局变量&局部变量 Lua数据类型 nil ...

  9. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群

    作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...

  10. Java面试题大全2021版

    一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...

最新文章

  1. html锚点(mao dian)--特殊的超链接
  2. js日历代码_JS无形装逼,最为致命
  3. URAL1204. Idempotents(扩展欧几里得)
  4. 转帖不会乱码的,powershell网络蜘蛛
  5. python基础安装第三方(十三)
  6. git rebase 工作流
  7. 【恋上数据结构】图代码实现、BFS、DFS、拓扑排序
  8. Android中发现蓝牙设备的广播是,Android 蓝牙设备的查找和连接
  9. python下载电影链接_Python:输入电影名,爬获取到阳光电影网中对应名称的迅雷下载链接,获取的链接有点问题(具体问题在内容里)...
  10. 可编程逻辑控制器类毕业论文文献都有哪些?
  11. java秀恩爱代码_Java版给爱人表白的玫瑰花程序代码
  12. 最小二乘法线性拟合介绍以及matlab实现
  13. MathType求和符号中的黑三角该如何消除
  14. unity 通过摄像机模拟实现小地图
  15. 英伟达 Magic3D:一句话生成3D模型,分辨率清晰8倍,速度快2倍,编辑文本还可直接修改...
  16. html 手机ar,vr与ar技术的区别有哪些
  17. mariadb Galera集群部署
  18. Unity Shader入门学习(5):基础屏幕后处理
  19. HDU2099 整除的尾数
  20. python爬取地图地址_网络爬虫-python爬取高德地图地点

热门文章

  1. 谷歌插件firebug和xpath下载,并解决包括拖拽无法安装、提示“组件无法安装 未通过验证”等问题
  2. Filter过滤器详解
  3. Azure Active Directory B2C (1)
  4. vulhub漏洞复现十七_GhostScript
  5. android 沙盒双开 微信,微信双开回来了,而且还不会被封号
  6. 解决 批处理 for 体内的字符串截取问题
  7. 有哪些好用的电脑桌面分类管理软件?这3款软件让你的效率秒杀小伙伴!
  8. Tracert原理图解
  9. oracle中文谐音,Treasure的歌词中文翻译?? bruno mars 唱的treasure中文歌词谐音 谁懂啊?帮......
  10. 微商爆粉2.0全自动批量加人模拟手动操作