欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 嵌入式Linux移植cJSON库

嵌入式Linux移植cJSON库

2025/2/26 14:27:10 来源:https://blog.csdn.net/qq_45875853/article/details/143932275  浏览:    关键词:嵌入式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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词