cJSON基本使用方法
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基本使用方法相关推荐
- c语言组json包,json格式解析和libjson的用法介绍(关于cjson的使用方法)
在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据格式:JSON与XML.本文主要介绍JSO ...
- cJSON的使用方法
首先,要介绍一下什么是json格式. 一.JSON格式简述 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.它 ...
- 开源项目学习:cJSON库的学习和使用(上)---以天气JSON数据为例
目录 1. cJSON源码的获取 2. JSON 的认识 3. 实践 3.1 解析一个 JSON 对象,获取其中项目(实时天气数据解析) 3.2 解析一个 JSON 数组,获取其中项目(未来或历史天气 ...
- c语言解析json代码举例,CJSON 实例
cJSON: 一个用c写的一个简单好用的JSON解析器 cJSON库 1.json的数据结构 c语言中json数据是采用链表存储的 typedef struct cJSON { struct cJSO ...
- stm32f103zet6实现HTTP协议请求,UTF-8转码JSON打包上传
概述: 最近在做一个项目,需要用stm32f103zet6开发板走HTTP协议,向疲劳驾驶检测设备发送请求消息,使其下发人脸识别的图片或参数信息,开发板进行接收,要求如下: 1. 开发板作为客户端.疲 ...
- axis2 默认端口_基于 AXIS2/C 的 C 语言库实现对提供 REST API 的系统进行数据访问...
基于 AXIS2/C 的 C 语言库实现对提供 REST API 的系统进行数据访问 宋 东平 和 赵 健 2013 年 3 月 07 日发布 AXIS2/C 简介和 REST 及 REST API ...
- Nginx学习笔记——下篇
文章目录 Nginx实现服务器端集群搭建 Nginx与Tomcat部署 环境准备(Tomcat) 环境准备(Nginx) Nginx实现动静分离 需求分析 动静分离实现步骤 Nginx实现Tomcat ...
- Lua+OpenResty快速入门
Lua+OpenResty快速入门 Lua 概念 特性 应用场景 Lua的安装 Lua的语法 第一个Lua程序 Lua的注释 标识符 关键字 运算符 全局变量&局部变量 Lua数据类型 nil ...
- 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群
作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...
- Java面试题大全2021版
一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...
最新文章
- html锚点(mao dian)--特殊的超链接
- js日历代码_JS无形装逼,最为致命
- URAL1204. Idempotents(扩展欧几里得)
- 转帖不会乱码的,powershell网络蜘蛛
- python基础安装第三方(十三)
- git rebase 工作流
- 【恋上数据结构】图代码实现、BFS、DFS、拓扑排序
- Android中发现蓝牙设备的广播是,Android 蓝牙设备的查找和连接
- python下载电影链接_Python:输入电影名,爬获取到阳光电影网中对应名称的迅雷下载链接,获取的链接有点问题(具体问题在内容里)...
- 可编程逻辑控制器类毕业论文文献都有哪些?
- java秀恩爱代码_Java版给爱人表白的玫瑰花程序代码
- 最小二乘法线性拟合介绍以及matlab实现
- MathType求和符号中的黑三角该如何消除
- unity 通过摄像机模拟实现小地图
- 英伟达 Magic3D:一句话生成3D模型,分辨率清晰8倍,速度快2倍,编辑文本还可直接修改...
- html 手机ar,vr与ar技术的区别有哪些
- mariadb Galera集群部署
- Unity Shader入门学习(5):基础屏幕后处理
- HDU2099 整除的尾数
- python爬取地图地址_网络爬虫-python爬取高德地图地点
热门文章
- 谷歌插件firebug和xpath下载,并解决包括拖拽无法安装、提示“组件无法安装 未通过验证”等问题
- Filter过滤器详解
- Azure Active Directory B2C (1)
- vulhub漏洞复现十七_GhostScript
- android 沙盒双开 微信,微信双开回来了,而且还不会被封号
- 解决 批处理 for 体内的字符串截取问题
- 有哪些好用的电脑桌面分类管理软件?这3款软件让你的效率秒杀小伙伴!
- Tracert原理图解
- oracle中文谐音,Treasure的歌词中文翻译?? bruno mars 唱的treasure中文歌词谐音 谁懂啊?帮......
- 微商爆粉2.0全自动批量加人模拟手动操作