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

cJson函数解析

获取json版本号

CJSON_PUBLIC(const char*) cJSON_Version(void);

设置自定义内存分配函数

CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks);

解析 JSON 字符串并将其转换为 cJSON 数据结构

CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);

用于解析指定长度的 JSON 字符串

CJSON_PUBLIC(cJSON *) cJSON_ParseWithLength(const char *value, size_t buffer_length);

cJSON 库中的一个高级解析函数,用于解析 JSON 字符串,并提供选项以控制解析行为。

CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated);

在指定长度的 JSON 字符串上执行解析,同时提供额外的选项以更灵活地控制解析行为。

CJSON_PUBLIC(cJSON *) cJSON_ParseWithLengthOpts(const char *value, size_t buffer_length, const char **return_parse_end, cJSON_bool require_null_terminated);

用于将 cJSON 对象转化为格式化的 JSON 字符串,便于输出和查看。

CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item);

用于将 cJSON 对象转化为未经格式化的紧凑 JSON 字符串。与 cJSON_Print 不同,cJSON_PrintUnformatted 输出的 JSON 字符串没有换行和缩进,更适合在需要节省存储空间的场景中使用。

CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item);

用于将 cJSON 对象转换为格式化的 JSON 字符串,并在生成时更有效地分配内存,适合处理较大 JSON 数据的场景。与 cJSON_Print 不同的是,cJSON_PrintBuffered 允许指定缓冲区的大小和控制内存分配。

CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt);

用于在预先分配的缓冲区中打印 JSON 对象。与其他 cJSON_Print 函数不同,cJSON_PrintPreallocated 允许使用预分配的内存块来存储生成的 JSON 字符串,避免动态内存分配,适合内存管理严格的环境。

CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buffer, const int length, const cJSON_bool format);

用于释放由 cJSON 对象占用的内存。任何通过 cJSON 创建的对象都应在不再需要时使用 cJSON_Delete 释放,以避免内存泄漏。

CJSON_PUBLIC(void) cJSON_Delete(cJSON *item);

用于获取 JSON 数组中元素的数量。该函数非常有用,尤其在处理未知长度的 JSON 数组时,可以帮助您遍历整个数组。

CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array);

用于获取 JSON 数组中指定索引位置的元素。此函数在处理 JSON 数组时非常有用,可以通过索引访问数组中的每个元素。

CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index);

用于从 JSON 对象中获取指定键的值。该函数在处理 JSON 对象时非常有用,可以通过键名快速访问相应的值。

CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string);

用于从 JSON 对象中获取指定键的值,并且该函数对键的大小写敏感。这意味着只有完全匹配(包括大小写)的键才能找到对应的值。

CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string);

用于检查 JSON 对象中是否存在指定的键。这个函数在处理 JSON 数据时非常有用,特别是当你想要验证某个键是否存在于对象中时。

CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string);

用于从 cJSON 对象中获取字符串值。这个函数非常方便,因为它简化了从字符串类型的 cJSON 对象中提取值的过程。

CJSON_PUBLIC(char *) cJSON_GetStringValue(const cJSON * const item);

用于从 cJSON 对象中获取数字值。这个函数简化了从数字类型的 cJSON 对象中提取值的过程。

CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item);

用于检查 cJSON 对象是否有效。这个函数常用于判断一个 cJSON 对象是否处于无效状态(例如,尚未初始化或已被释放)。

CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item);

用于检查 cJSON 对象是否表示布尔值 false。这个函数在处理 JSON 数据时非常有用,特别是当需要判断某个值是否为 false 时。

CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item);

用于检查 cJSON 对象是否表示布尔值 true。这个函数在处理 JSON 数据时非常有用,特别是当需要判断某个值是否为 true 时。

CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item);

用于检查 cJSON 对象是否表示布尔值(true 或 false)。这个函数在处理 JSON 数据时非常有用,尤其是在需要确认某个值是否为布尔类型时。

CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item);

用于检查 cJSON 对象是否表示 null 值。这个函数在处理 JSON 数据时非常有用,尤其是在需要判断某个值是否为 null 时。

CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item);

用于检查 cJSON 对象是否表示数字类型。这个函数在处理 JSON 数据时非常有用,特别是当需要确认某个值是否为数字时。

CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item);

用于检查 cJSON 对象是否表示字符串类型。这个函数在处理 JSON 数据时非常有用,特别是当需要确认某个值是否为字符串时。

CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item);

用于检查 cJSON 对象是否表示数组类型。这个函数在处理 JSON 数据时非常有用,特别是当需要确认某个值是否为数组时。

CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item);

用于检查 cJSON 对象是否表示对象类型。这个函数在处理 JSON 数据时非常有用,特别是当需要确认某个值是否为对象时。

CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item);

,用于检查 cJSON 对象是否表示原始(raw)类型。原始类型通常是指不带引号的字符串,类似于 JSON 的某些特殊格式,例如未转义的文本。

CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item);

用于创建一个表示 null 值的 cJSON 对象。这个函数在构建 JSON 数据时非常有用,尤其是在需要表示空值或缺失值的情况下。

CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void);

用于创建一个表示布尔值 true 的 cJSON 对象。这个函数在构建 JSON 数据时非常有用,尤其是在需要表示真值的情况下。

CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void);

用于创建一个表示布尔值 false 的 cJSON 对象。这个函数在构建 JSON 数据时非常有用,尤其是在需要表示假值的情况下。

CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void);

创建一个表示布尔值的 cJSON 对象(true 或 false)

CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool boolean);

创建一个表示数字值的 cJSON 对象。

CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num);

创建一个表示字符串值的 cJSON 对象。

CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string);

创建一个表示原始字符串值的 cJSON 对象,通常用于未加引号的文本。

CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw);

创建一个空的 cJSON 数组对象。

CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void);

创建一个空的 cJSON 对象。

CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void);

创建一个字符串引用,不会复制字符串,只引用原始字符串。

CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string);

创建一个对象引用。

CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child);

创建一个数组引用。

CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child);

创建一个整数数组对象。

CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count);

创建一个浮点数数组对象。

CJSON_PUBLIC(cJSON *) cJSON_CreateFloatArray(const float *numbers, int count);

创建一个双精度浮点数数组对象。

CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int count);

创建一个字符串数组对象。

CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char *const *strings, int count);

向数组中添加一个新项。

CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToArray(cJSON *array, cJSON *item);

向对象中添加一个新项。

CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item);

向对象中添加一个新项,键名区分大小写。

CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item);

向数组中添加一个引用项(不会复制)。

CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item);

向对象中添加一个引用项(不会复制)。

CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item);

通过指针从对象或数组中分离一个项。

CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * const item);

从数组中分离一个项。

CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which);

从数组中删除一个项。

CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which);

从对象中分离一个项。

CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string);

从对象中分离一个项,区分大小写。

CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *object, const char *string);

从对象中删除一个项。

CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string);

从对象中删除一个项,区分大小写。

CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object, const char *string);

在数组的指定位置插入一个项。

CJSON_PUBLIC(cJSON_bool) cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem); /* Shifts pre-existing items to the right. */

用新项替换已存在的项。

CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent, cJSON * const item, cJSON * replacement);

用新项替换数组中的项。

CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem);

用新项替换对象中的项。

CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem);

用新项替换对象中的项,区分大小写。

CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *object,const char *string,cJSON *newitem);

复制一个 cJSON 对象。

CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse);

比较两个 cJSON 对象是否相等。

CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSON * const b, const cJSON_bool case_sensitive);

去除 JSON 字符串中的多余空白字符。

CJSON_PUBLIC(void) cJSON_Minify(char *json);

向对象中添加一个 null 项。

CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const char * const name);

向对象中添加一个 true 项。

CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const char * const name);

向对象中添加一个 false 项。

CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const char * const name);

向对象中添加一个布尔值项。

CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const char * const name, const cJSON_bool boolean);

向对象中添加一个数字项。

CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const char * const name, const double number);

向对象中添加一个字符串项。

CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const char * const name, const char * const string);

向对象中添加一个原始 JSON 字符串项。

CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const char * const name, const char * const raw);

向对象中添加一个嵌套对象项。

CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const char * const name);

向对象中添加一个数组项。

CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const char * const name);

设置 cJSON 对象的整数值。

#define cJSON_SetIntValue(object, number) ((object) ? (object)->valueint = (object)->valuedouble = (number) : (number))

设置 cJSON 对象的数字值,适用于浮点数。

CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number);

设置 cJSON 对象的数字值。

#define cJSON_SetNumberValue(object, number) ((object != NULL) ? cJSON_SetNumberHelper(object, (double)number) : (number))

设置 cJSON 对象的字符串值。

CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring);

遍历 cJSON 数组中的每个项。

#define cJSON_ArrayForEach(element, array) for(element = (array != NULL) ? (array)->child : NULL; element != NULL; element = element->next)

分配内存。

CJSON_PUBLIC(void *) cJSON_malloc(size_t size);

释放内存。

CJSON_PUBLIC(void) cJSON_free(void *object);

相关文章:

cJson函数解析

获取json版本号 CJSON_PUBLIC(const char*) cJSON_Version(void);设置自定义内存分配函数 CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks);解析 JSON 字符串并将其转换为 cJSON 数据结构 CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);用于解析指定长度的…...

基于SSM+微信小程序的跑腿平台管理系统(跑腿3)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的跑腿平台管理系统实现了管理员、接单员及用户三个角色。 1、管理员实现了首页、个人中心、管理员管理、基础数据管理、接单详情、跑腿任务管理等。 2、接单员实现了…...

mit6824-02-Lab1:MapReduce分布式实现

文章目录 写在前面总体思路分析代码实现参考链接 写在前面 具体上次写6824的第一篇文章已经过去了快一个月,上次学习了MapReduce论文相关理论后一直没有继续写代码实现,自己一边要搞论文没有整块时间实现,这两天抽写了相关代码,算…...

【NOIP普及组】 装箱问题

【NOIP普及组】 装箱问题 💐The Begin💐点点关注,收藏不迷路💐 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0&…...

Flutter主题最佳实践

Styling your Flutter app not only makes it visually appealing but also enhances the user experience. Flutter offers a robust theming system that helps you maintain consistency and customize your app’s look and feel. 设计 Flutter 应用程序的风格不仅能使其在…...

计算机网络:网络层 —— IPv4 数据报的首部格式

文章目录 IPv4数据报的首部格式IPv4数据报分片生存时间 TTL字段协议字段首部检验和字段 IPv4数据报的首部格式 IPv4 数据报的首部格式及其内容是实现 IPv4 协议各种功能的基础。 在 TCP/IP 标准中,各种数据格式常常以32比特(即4字节)为单位来描述 固定部分&#x…...

MySQL 之 索引

索引 概述 是帮助MySQL高效获取数据的数据结构,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在数据结构上实现高效查找算法,这种…...

手动探针台的用途及组成部分

探针台系统分为手动探针台与自动探针台,以下我们主要分析手动探针台。 探针台用途: 手动探针台又称探针测试台主要用途是为半导体芯片的电参数测试提供一个测试平台,探针台可吸附多种规格芯片,并提供多个可调测试针以及探针座&am…...

❤️算法笔记❤️-(每日一刷-5、最长回文串)

文章目录 题目思路解答 题目 给你一个字符串 s,找到 s 中最长的 回文 子串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入&#xf…...

nginx 路径匹配,关于“/“对规则的影响

1、基本规则 假如后端实际地址为: http://127.0.0.1:8080/api/user/getById?id123 则: 1)通过nginx转发,使用http://127.0.0.1/api/user/getById?id123访问 server {listen 80;server_name 127.0.0.1;location /api…...

安全知识见闻-网络安全热门证书

一、OSCP(Offensive Security Certified Professional) 1. 证书介绍 2.考点 3.部分考试要求 4.练习方法 二、OSEP(Offensive Security Exploit Developer) 1.证书介绍 2.考点 3.练习方法 三、CISSP(Certified lnformation Systems Security Professional&a…...

Pandabuy事件警示:反向海淘品牌如何规避风险

Pandabuy,作为一个曾经备受海外消费者青睐的跨境电商平台,以其丰富的商品种类、优质的服务和便捷的购物流程迅速崛起。然而,近期的一系列丑闻,尤其是涉嫌销售大量仿制名牌运动鞋的事件,让Pandabuy陷入了前所未有的信任…...

【纯血鸿蒙】安装hdc工具

这里我先写Mac版的,Windows的在下面 首先要知道你的SDK安装在哪里了,不知道的话,可以打开DevEco Studio,打开设置页面里的HarmonyOS SDK,这个我们之前配置环境变量的时候用过。 其实主要是用到这里toolchains下的hdc命令。 所以我们需要配置环境变量。 1、打开Mac下的…...

TensorFlow面试整理-给定一个任务(如图像分类、文本分类),如何从头构建一个TensorFlow模型?

构建一个 TensorFlow 模型来执行图像分类或文本分类任务的步骤基本类似,虽然数据类型不同,但核心流程相同。以下将以 图像分类任务 和 文本分类任务 为例,展示如何从头构建 TensorFlow 模型,覆盖数据预处理、模型构建、编译、训练和评估的完整流程。 一、图像分类任务:从头…...

unity中出现一些莫名其妙的问题

问题现象:一个功能昨天测试还正常的今天突然不能用了,而且关于这个功能的代码都没调整过。 原因:相关逻辑上存在异常代码,可能是别人提交的代码运行中有异常未处理导致 处理办法:解决异常 查找哪些位置使用了该异常脚本…...

Python爬虫-汽车投诉排行榜单数据

前言 本文是该专栏的第40篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某汽车平台为例,通过python采集其“汽车投诉排行”榜单数据。具体的实现思路以及完整实现代码逻辑,笔者将在正文为你详细介绍。废话不多说,跟着笔者直接往下看正文详细内容。(附带完整代码…...

[C++][数据结构][哈希表]详细讲解

目录 1. 哈希概念 2.哈希冲突 3.哈希函数 4.哈希冲突解决 4.1闭散列 4.1.1何时扩容?如何扩容? 4.1.2线性探测 4.1.3二次探测 4.2开散列(哈希桶) 4.2.1概念 4.2.2开散列增容 1. 哈希概念 顺序结构以及平衡树中,元素关键码与其存储…...

Android Gradle

#1024程序员节|征文# Gradle 是一款强大的自动化构建工具,广泛应用于 Android 应用开发。它通过灵活的配置和丰富的插件系统,为项目构建提供了极大的便利。本文只是简单的介绍 Gradle 在 Android 开发中的使用,包括其核心概念、构…...

Vue2自定义指令及插槽

这里写目录标题 自定义指令基础语法指令的值封装v-loading指令 插槽默认插槽后备内容(插槽的默认值)具名插槽作用域插槽 自定义指令 自定义指令:自己定义的指令,封装一些dom操作,扩展额外功能 基础语法 全局注册&am…...

【Qt】系统相关——多线程、Qt多线程介绍、常用函数、线程安全、网络、UDP Socket、TCP Socket

文章目录 Qt系统相关1. 多线程1.1 Qt多线程介绍1.2 常用函数1.3 线程安全 2. 网络2.1 UDP Socket2.2 TCP Socket Qt 系统相关 1. 多线程 1.1 Qt多线程介绍 QThread 代表一个在应用程序中可以独立控制的线程,它还可以和进程中的其他线程共享数据。QThread 对象管理…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言:多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

AI,如何重构理解、匹配与决策?

AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

腾讯云V3签名

想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...