嵌入式Linux移植cJSON库

news/2024/11/27 1:28:15/

嵌入式Linux移植cJSON库

  • 一、前言
  • 二、移植
  • 三、常用函数
  • 四、代码案例
  • 五、注意事项

一、前言

  在使用嵌入式系统做项目时,碰见了使用JSON格式数据的需求,所以需要移植cJSON库进行组织和解析数据。

二、移植

  cJSON的github地址:https://github.com/DaveGamble/cJSON,可以在git仓库中直接clone代码下来:git clone https://github.com/DaveGamble/cJSON.git,此外还可以直接cJSON官网下载。
  下载完成之后,我们需要得到cJSON.c cJSON.h这两个文件,然后把这个文件复制到工程里面,头文件引用到cJSON.h的正确路径。

三、常用函数

1.cJSON *cJSON_Parse(const char *value)
从给定的json字符串中得到cjson对象
2.cJSON *cJSON_GetObjectItemCaseSensitive(const cJSON * const object,const char * const string)
用于从一个已解析的JSON对象中查找指定键的值,对键名的匹配区分大小写
3.int cJAON_GetArraySize(const cJSON *array)
获取cjson对象数组成员的个数
4.cJSON * cJSON_GetArrayItem(const vcJSON *array, int index)
根据下标获取cjosn对象数组中的对象
5.const char *cJSON_GetErrorPtr(void)
获取错误字符串
void cJSON_Delete(cJSON *item)
删除cjson对象,释放链表占用的内存空间

四、代码案例

#include "cJSON.h"void parse_code(char *json_str)
{cJSON *root = cJSON_Parse(json_str);//获取json对象if(root==NULL){printf("Error before:[%s]\n",cJSON_GetErrorPtr());}else{//解析字符串型键值对const char *game= cJSON_GetObjectItemCaseSensitive(root,"game")->valuestring;if(strcmp(game,"Basketball")==0){//game值为Basketball实现的操作}//解析字符串数组键值对cJSON *class_array = cJSON_GetObjectItemCaseSensitive

http://www.ppmy.cn/news/1550200.html

相关文章

僵尸毁灭工程 服务搭建 联机教程 无需公网IP、服务器

主要内容 什么是僵尸毁灭工程 搭建该服务,需要准备什么 详细步骤 1.下载并运行 SteamCMD 2.下载僵尸毁灭服务端 3.运行 MoleSDN 进行异地联机 4.小伙伴皮蛋加入鼠鼠服务器 完成联机 什么是僵尸毁灭工程 一款由The Indie Stone开发的开放世界生存模拟游戏。游…

WebRTC音视频同步原理与实现详解(上)

第一章、RTP时间戳与NTP时间戳 1.1 RTP时间戳 时间戳,用来定义媒体负载数据的采样时刻,从单调线性递增的时钟中获取,时钟的精度由 RTP 负载数据的采样频率决定。 音频和视频的采样频率是不一样的,一般音频的采样频率有 8KHz、…

【linux】插入新硬盘如何配置:格式化、分区、自动挂载(Ubuntu)

文章目录 具体方法GPT分区表(GUID Partition Table)(建议都用这种分区方法)MBR分区表方法(最大支持2TB分区)(Master Boot Record) 附加:如何查看硬盘的型号另外&#xff…

如何使用 Python 开发一个简单的文本数据转换为 Excel 工具

目录 一、准备工作 二、理解文本数据格式 三、开发文本数据转换为Excel工具 读取CSV文件 将DataFrame写入Excel文件 处理其他格式的文本数据 读取纯文本文件: 读取TSV文件: 四、完整代码与工具封装 五、使用工具 六、总结 在数据分析和处理的日常工作中,我们经常…

spark 3.4.4 利用Spark ML中的交叉验证、管道流实现鸢尾花分类预测案例选取最优模型

前情回顾 前面的案例中,介绍了怎么基于管道流实现啊鸢尾花案例,利用逻辑斯蒂回归模型预测。详细内容步骤可以参照相应的博客内容 本案例内容 在 Spark 中使用交叉验证结合逻辑回归(Logistic Regression)以及管道流(P…

Sickos1.1 详细靶机思路 实操笔记

Sickos1.1 详细靶机思路 实操笔记 免责声明 本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力。请在合法合规的前提下使用本文中提供的任何技术、方法或工具。如果您选择使用本博客中的任何信息进行非法活动,您将独自承担…

业务架构、数据架构、应用架构和技术架构

TOGAF(The Open Group Architecture Framework)是一个广泛应用的企业架构框架,旨在帮助组织高效地进行架构设计和管理。 TOGAF 的核心就是由我们熟知的四大架构领域组成:业务架构、数据架构、应用架构和技术架构。 企业数字化架构设计中的最常见要素是4A 架构。 4…

java学习记录12

ArrayList方法总结 构造方法 ArrayList() 构造一个初始容量为 10 的空列表。 ArrayList(int initialCapacity) 构造一个具有指定初始容量的空列表。 实例方法 add(int index, E element) 在此list中的指定位置插入指定元素。 ArrayList<Integer> array…