当前位置: 首页 > article >正文

嵌入式Linux移植cJSON库

嵌入式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.kler.cn/a/404188.html

相关文章:

  • pdf文档动态插入文字水印,45度角,旋转倾斜,位于文档中央,多行水印可插入中文
  • Python虚拟环境入门:虚拟环境如何工作、如何自定义创建和管理管理工具venv、Virtualenv、conda
  • 【实用数据】上市公司数字化转型双重差分准自然实验数据(2007-2022年)
  • 离散数学---概率, 期望
  • JMeter监听器与压测监控之 InfluxDB
  • Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
  • 基于 RBF 神经网络辨识的单神经元 PID 模型参考自适应控制
  • fca考试
  • 每天五分钟深度学习框架pytorch:神经网络模型的参数初始化操作
  • (二)Ubuntu22.04+Stable-Diffusion-webui AI绘画 中英双语插件安装
  • 括号匹配算法
  • Kafka-创建topic源码
  • Flink的Standalone集群模式安装部署
  • 【机器学习chp6】对数几率回归
  • 【AI】人工智能报告解读——中国人工智能的发展
  • #systemverilog# 关于 randomize(a) 却报 b 失败的疑问
  • pytorch经典训练流程
  • 【运维自动化-作业平台】如何使用全局变量之数组类型?
  • C#桌面应用制作计算器进阶版01
  • 空间与单细胞转录组学的整合定位肾损伤中上皮细胞与免疫细胞的相互作用
  • 稀疏最大谐波噪声比解卷积算法MATLAB实战
  • 十八:HTTP包体的传输方式(1):定长包体
  • 如何删除pdf里的任意一页?删除PDF里任意一页的几种方法
  • 算法知识-13-链表
  • 蓝桥杯每日真题 - 第20天
  • 「Mac玩转仓颉内测版25」基础篇5 - 布尔类型详解