什么是Json(javajson)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式 。JSON广泛应用于互联网相关的开发,也应用于我们的嵌入式系统 。最近几个项目都在用,用起来很方便 。
简单的JSON格式数据,例如:
{ "name": "xxx", "num": xxx, "c_score": xxx}这里我们需要知道一个概念:键值对 。例如:
"name": "xxx"看起来像这样的是一对键值对 。
当我们是发送方的时候,要把xxx的有用数据组合成JSON格式的数据发送给接收方;当我们是接收方时,我们需要从这堆JSON数据中解析出xxx并使用它 。简单的JSON数据,我们可以用C语言的一些字符串来封装解析相关的库函数,但是稍微复杂一点的JSON可能就没那么好操作了 。
这时候我们可以使用一个第三方库——cjs on库,可以方便的对数据进行封装和分析 。
cJSON仓库的地址:
https://github.com/DaveGamble/cJSON.git
或者
https://gitee.com/mirrors/cJSON.git
下面通过实例分享一下cJSON库对数据包和数据分析的使用 。
组包、解析示例1、确定协议数据在实际开发中,如果要将JSON数据作为通信数据,自然要先确定通信双方要交互什么数据,必要的话还要写一个协议文档 。该协议包含诸如要传输的数据、数据类型等信息 。例如:

2、组JSON数据包示例从控制台输入一些学生信息,组合成字符串格式的JSON包,然后输出到控制台 。
操作示例:
首先,我们从仓库下载cJSON源代码 。文件夹内容如下:
我们只需要将两个文件cJSON.c和cJSON.h复制到我们项目的根目录下就可以使用了,比如:
从cJSON.h可以看到,它为我们提供了很多接口:
在本例中,我们可以关注以下接口:
cJSON_CreateObject:创建JSON对象,{}扩起来的cJSON_CreateString:创建字符串cJSON_CreateNumber:创建int类型数据cJSON_AddItemToObject:添加到JSON对象中cJSON_Print:呈现为标准的JSON格式cJSON_PrintUnformatted:呈现为去掉空格的JSON格式cJSON_Delete:JSON对象删除,做一些释放内存的工作
【什么是Json(javajson)】我们创建的包函数如下:
static char *StudentsData_Packet(pStudentDef _Stu){ char *res_string = NULL; // 返回值 cJSON *name = NULL; // 名字 cJSON *num = NULL; // 学号 cJSON *c_score = NULL; // C语言分数 /* 创建一个JSON对象,{}扩起来 */ cJSON *obj = cJSON_CreateObject(); if (obj == NULL) { goto end; } /* 创建 "name": "xxx" 键值对 */ name = cJSON_CreateString(_Stu-


    推荐阅读