什么是Json,javajson

什么是Json,javajson 前言JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON在互联网相关开发中用得很多,在我们嵌入式中用得也不少。最近在项目中就有用到,用

前言

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON在互联网相关开发中用得很多,在我们嵌入式中用得也不少。最近在项目中就有用到,用起来很方便。

简单的JSON格式数据如:

{
  "name": "xxx",
  "num": xxx,
  "c_score": xxx
}

这里我们需要知道一个概念:键值对。比如:

"name": "xxx"

像这样子的就是一对键值对。

当我们作为发送方时,我们要把xxx这些有用的数据组合成JSON格式的数据发送给接收方;当我们作为接收方时,我们需要从这一堆JSON数据中解析出xxx这些有用的数据拿来使用。简单的JSON数据,我们使用C语言的一些字符串操作相关的库函数也是可以做到组包和解析的,但是一些稍微复杂一点的JSON,可能就没那么好操作了。

这时候我们可以借助一个第三方库——cJSON库,可以很方便来做数据组包及解析。

cJSON库仓库地址:

https://github.com/DaveGamble/cJSON.git

或者

https://gitee.com/mirrors/cJSON.git

下面我们通过实例来分享使用cJSON库来做数据组包及数据解析。

组包、解析示例

1、确定协议数据

在实际开发中,要把JSON数据作为通信的数据,自然要先确定通信双方要交互的数据有哪些,如有需要还需编写形成协议文档。协议文档包含要传输的数据,数据类型等信息。比如:

例说嵌入式实用知识之JSON数据

2、组JSON数据包示例

从控制台输入一些学生信息,组合成字符串格式的JSON数据包,然后再输出至控制台。

操作示例:

例说嵌入式实用知识之JSON数据

首先,我们先从仓库下载cJSON源码,文件夹内容如:

例说嵌入式实用知识之JSON数据

我们只需要把cJSON.c、cJSON.h两个文件复制到我们工程的根目录下就可以使用,如:

例说嵌入式实用知识之JSON数据

从cJSON.h可以看到其给我们提供了很多接口:

例说嵌入式实用知识之JSON数据

本例中我们重点如下几个接口即可:

cJSON_CreateObject:创建JSON对象,{}扩起来的
cJSON_CreateString:创建字符串
cJSON_CreateNumber:创建int类型数据
cJSON_AddItemToObject:添加到JSON对象中
cJSON_Print:呈现为标准的JSON格式
cJSON_PrintUnformatted:呈现为去掉空格的JSON格式
cJSON_Delete:JSON对象删除,做一些释放内存的工作

我们创建的的组包函数如下:

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-

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50607.html

(0)

相关推荐

  • 潺潺溶溶的意思(字义,诗词)

    词组潺潺溶溶的意思(字义,诗词)基本解释详细字义 潺潺溶溶拼音:chán chán róng róng注音:ㄔㄢˊ ㄔㄢˊ ㄖㄨㄥˊ ㄖㄨㄥˊ解释:波光荡漾貌。基本字义
    潺chán(ㄔㄢˊ)
    1、〔潺潺〕a.水缓

    阅读 2021年11月17日
  • 钢笔刻字刻什么好,在钢笔刻字4个字古风

    钢笔刻字刻什么好,在钢笔刻字4个字古风

    攻略 2021年10月19日
  • 疯狂骑士团金币使用方法推荐,疯狂骑士团金币使用方法推荐图

    骑士团游戏金币建议优先升级宝箱等级,在等待宝箱升级的过程中,尽量收集下级宝箱升级后的金币,争取在宝箱升级后尽快进入下一个升级阶段多余的金币用来打磨橘子马。 在这里,我推荐一下我们给...

    攻略 2022年10月17日
  • 纯色背景图片(背景图片大全 唯美)

    纯色背景图片纯色背景图片(背景图片大全 唯美)纯色背景图片1.干事就像下象棋,必须得走一步看两步想三步,有备无患,运筹帷幄,成竹在胸,才干有将死对方的把握。2.每一个人都多多少少有点慵懒。一个人的意志力气不够推动他自己,

    阅读 2021年12月9日
  • 茨棘之间的意思(字义,诗词)

    词组茨棘之间的意思(字义,诗词)基本解释详细字义 茨棘之间拼音:cí jí zhī jiān注音:ㄘˊ ㄐ一ˊ ㄓ ㄐ一ㄢㄐ一ㄢˋ解释:茨:茅苇的屋盖;棘:荆棘。形容穷苦人家简陋的住房。基本字义
    茨cí(ㄘˊ)

    阅读 2021年11月15日
  • 一念逍遥缘定七夕(一念逍遥活动第四天答案)

    我开心游戏,七夕节即将开启,里面会有一个在线问答,回答比较简单。那么2022年七夕节第五天的答案是什么呢?下面是七夕快乐问答第五天的答案分享2022;每个人都有。有兴趣的朋友来看看...

    2022年8月2日