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: 输入…...
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 对象管理…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...
