json 与 cJSON
json 与 cJSON
- 一、json是什么?
- 1.简介
- 2.json的语法规则
- 二、cJSON
- 1.简介
- 2.下载
- 3.cJSON
- 4.实例
一、json是什么?
1.简介
1.json指的是JavaScript对象表示法(JavaScript Object Notation)
2.josn是轻量级的文本数据交换格式
3.json独立于语言
4.json具有自我描述性,更易理解
5.json 使用 JavaScript 语法来描述数据对象,但是 json 仍然独立于语言和平台。json 解析器和 json 库支持许多不同的编程语言。
2.json的语法规则
json的语法规则:https://www.runoob.com/json/json-syntax.html
二、cJSON
1.简介
cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSON解析器。
我们在使用JSON格式时,如果只是处理简单的协议,可以依据JSON格式,通过对字符串的操作来进行解析与创建。然而随着协议逐渐复杂起来,经常会遇到一些未考虑周全的地方,需要进一步的完善解析方法,此时,使用比较完善的JSON解析库的需求就提出来了。
基于方便引用的考虑,我们希望这个JSON解析库是用C语言实现的。同时,为了避免太过复杂的C源码包含关系,希望最好是一个C文件来实现。通过在网络上的查找,发现cJSON是比较符合要求的。cJSON只有一个C文件,一个头文件,包含到项目源码中非常方便,而且其实现效率也是非常高的。
2.下载
git clone https://github.com/DaveGamble/cJSON.git
cd cJSON
把这两个放入你的项目中即可。
编译时加上选项-lm
因为cJSON源码中用到了math库。
3.cJSON
在这里只讲一些项目中用到的一些API。
详细请参考:https://blog.csdn.net/makunIT/article/details/107199000
如果博客看不懂或者有疑问,请打开源码:vim cJSON.h
,vim cJSON.c
仔细阅读,此源码并不复杂。
cJSON *cJSON_CreateObject()//创建一个json对象,返回一个cJSON结构体类型的指针。
void cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item)//向json对象中添加一对元素,object为json对象,string为加入其中对象的name,item为加其中对象的value。
char *cJSON_Print(cJSON *item)//将一个cJSON结构体代表的json对象转换为一个json格式的字符串。
void cJSON_Delete(cJSON *c)//释放一个cJSON对象占用的内存空间。
说明:
添加操作的底层都是这个函数,只不过起了一个新的名字,所以我们只学习这一个函数:**void cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item)**即可。
4.实例
json 与 cJSON相关推荐
- STM32 解析 JSON 之 cJSON
什么是 JSON ? 可以参考此网站链接:JSONhttp://www.json.org/json-en.html 此网站首页最下方是各种语言的实现库: cJSON 的 GitHub 地址:DaveG ...
- Json与CJson详解
JSON(JavaScript Object Notation,JavaScript对象表示法)是一种由道格拉斯·克罗克福特构想和设计.轻量级的数据交换语言,该语言以易于让人阅读的文字 ...
- JSON和cJSON
cJson使用 目录 一.什么是JSON 1.JSON 2.cJSON 二.例子 1.最简单的cJSON字符串 2.使用cJSON解析数组 三.完整代码 一.什么是JSON 最近在做项目的时候,经常用 ...
- JSON与cJSON
该文主要记录是JSON的基本概念以及对应的cJSON API. 一.什么是JSON ? 详细的介绍见 https://www.json.org/ ,可以看到, JSON 可分为两类,一类是object ...
- c语言解析json报文源码,GitHub - faycheng/cJSON: cJson源码和源码分析
cJSON官方文档翻译 项目预期目标 文档翻译 函数列表 项目架构 源码注释 解析流程 快速使用 ###版权说明 Copyright (c) 2009 Dave Gamble Permission i ...
- JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用
json | json-c使用入门 这篇讲的也不错,抽空看下(网络传输json数据) https://www.bilibili.com/video/av669454528?p=3&spm_id ...
- json格式与cJSON函数库
json的格式 键/值对 key:value,用半角冒号分割 文档对象 JSON对象写在花括号中,可以包含多个键/值对. 数组 JSON 数组在方括号中书写: 数组成员可以是对象,值,也可以是数组(只 ...
- Lua利用cjson读写json
前言 本文结合本人的实际使用经验和代码示例,介绍如何在Lua中对json进行encode和decode.我这里采用的是Lua CJson库,是一个高性能的JSON解析器和编码器,其性能比纯Lua库要高 ...
- 全面详解c语言使用cJSON解析JSON字符
为什么选择cJSON来解析JSON字符串?因为简洁又简单,而且效率又快,cJSON工程文件也非常简单,仅一个.c文件和一个.h文件! 如果要自己写的话就是重造轮子了,况且效率上也不一定会比cJSON更 ...
最新文章
- html 流动效果,html5 canvas流动的海浪特效
- sparkstreaming监听hdfs目录如何终止_Spark笔试题:Spark Streaming 反压机制
- 渗透测试网络环境搭建
- BOOST_VMD_ASSERT_IS_TUPLE宏相关的测试程序
- 某计算机系统20位地址线 8位数据线,同济大学2009-2010(1)微机原理期终考试试题(B卷)...
- kafka 主动消费_Kafka消费组(consumer group)
- Oracle报错:IO Error: Invalid number format for port number
- Etcd服务发现原理
- python 之发送邮件服务[原著] 海瑞博客
- 简单动态网站的搭建流程
- StartDT奇点云邀您参加2022云栖大会,11月3-5日杭州见
- 报错:跨域问题解决 No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
- 利用Python实现图片信息隐藏
- 在农业道路上越扎越深,拼多多看到了什么?
- debian是什么?
- python的pulp包_使用Python/PuLp解决线性规划问题
- Monte Carlo方法的基本思路
- 美国AMC数学竞赛的含金量如何?
- Redis键-值数据库 nosql 数据建模(4)------ 如何存储主从表数据 一对超级多关系
- ubuntu中snap包的安装、更新删除与简单使用
热门文章
- VBA小模板:一个普通随机抽奖,需要模拟多轮用VBA怎么做?
- mosquitto 在 Windows 上的安装
- 路由器WIFI信号有时找不到,挨在边上也找不到的解决办法 - 找不到WIFI信号 - 家里WIFI找不到
- Linux下的打包和解压缩命令
- Self -Supervised Learning
- C++最长公共子序列问题(LCS)(递归+迭代)
- 如何使用memset函数
- python日本 老龄化分析_中国离老龄化社会还有多远?数据图表源代码一览
- qt连接mysql数据库 mac_Mac系统下Qt 4.8编译连接数据库(Oracle,MySql)
- BAT批处理基本命令