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.hvim 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相关推荐

  1. STM32 解析 JSON 之 cJSON

    什么是 JSON ? 可以参考此网站链接:JSONhttp://www.json.org/json-en.html 此网站首页最下方是各种语言的实现库: cJSON 的 GitHub 地址:DaveG ...

  2. Json与CJson详解

            JSON(JavaScript Object Notation,JavaScript对象表示法)是一种由道格拉斯·克罗克福特构想和设计.轻量级的数据交换语言,该语言以易于让人阅读的文字 ...

  3. JSON和cJSON

    cJson使用 目录 一.什么是JSON 1.JSON 2.cJSON 二.例子 1.最简单的cJSON字符串 2.使用cJSON解析数组 三.完整代码 一.什么是JSON 最近在做项目的时候,经常用 ...

  4. JSON与cJSON

    该文主要记录是JSON的基本概念以及对应的cJSON API. 一.什么是JSON ? 详细的介绍见 https://www.json.org/ ,可以看到, JSON 可分为两类,一类是object ...

  5. c语言解析json报文源码,GitHub - faycheng/cJSON: cJson源码和源码分析

    cJSON官方文档翻译 项目预期目标 文档翻译 函数列表 项目架构 源码注释 解析流程 快速使用 ###版权说明 Copyright (c) 2009 Dave Gamble Permission i ...

  6. JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用

    json | json-c使用入门 这篇讲的也不错,抽空看下(网络传输json数据) https://www.bilibili.com/video/av669454528?p=3&spm_id ...

  7. json格式与cJSON函数库

    json的格式 键/值对 key:value,用半角冒号分割 文档对象 JSON对象写在花括号中,可以包含多个键/值对. 数组 JSON 数组在方括号中书写: 数组成员可以是对象,值,也可以是数组(只 ...

  8. Lua利用cjson读写json

    前言 本文结合本人的实际使用经验和代码示例,介绍如何在Lua中对json进行encode和decode.我这里采用的是Lua CJson库,是一个高性能的JSON解析器和编码器,其性能比纯Lua库要高 ...

  9. 全面详解c语言使用cJSON解析JSON字符

    为什么选择cJSON来解析JSON字符串?因为简洁又简单,而且效率又快,cJSON工程文件也非常简单,仅一个.c文件和一个.h文件! 如果要自己写的话就是重造轮子了,况且效率上也不一定会比cJSON更 ...

最新文章

  1. Linux jobs等前后台运行命令详解
  2. 神经网络预测mnist时候如果不归一化,则准确率仅仅10%下文作者svm也遇到了。
  3. 【MYSQL】常用命令备忘录
  4. 社区奖品之DOULEX按键灯
  5. delphi 串口通信发送_STM32第五章串口通讯详解
  6. mysql.connector写了一个简单的mysql操作类:
  7. Dapr微服务应用开发系列3:服务调用构件块
  8. tcp协议的主要功能是什么_前端要知道的网络知识一:TCP/IP 协议到底在讲什么...
  9. Android内容提供器——运行权限
  10. javascript window.open
  11. flask mysql 1366_2017-11-17 Python Flask Script+mysql环境设置
  12. android sd media rw,Android 外部SD卡/U盤無法寫入解決方法(需要root)
  13. 深入浅出三剑客之awk必杀技一例
  14. 电信业降薪可能并不完全是空穴来风
  15. 前端第二天 表格/表单和H5
  16. 修改文件类型(txt文件改为bat、sh文件)
  17. iOS 中可能用到的数学公式(绝对值、平方、取整、正余弦)
  18. 微信小程序--数据列表
  19. EndPoint详解
  20. c语言把char转化为string,浅析string 与char* char[]之间的转换

热门文章

  1. 医疗行业大数据医疗分析案例
  2. VS2012使用svn
  3. 谷歌浏览器chrome devtools 插件安装
  4. Prim算法的具体实现
  5. 响应式五金机械网站pbootcms模板,蓝色营销型五金配件网站源码下载
  6. APP后台服务器阿里云Win系统服务器搭建的方法
  7. NLP学习——Word2vec
  8. python--剑指offer--14- I. 剪绳子
  9. 嵌入式软件之裸板与驱动调试
  10. ZYNQ开发系列——ZYNQ系统的搭建