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

哪一些网站使用vue做的安徽seo网络优化师

哪一些网站使用vue做的,安徽seo网络优化师,微信公众号链接的网站怎么做的,石家庄招聘网最新招聘以下是一个基于 ESP32 - S3 使用 ESP - IDF 框架实现 JSON 键值对数据创建、读写和解析的 C 语言例程。 环境准备 确保你已经安装了 ESP - IDF 开发环境&#xff0c;并且可以正常编译和烧录代码到 ESP32 - S3 开发板。 代码示例 #include <stdio.h> #include <stri…

以下是一个基于 ESP32 - S3 使用 ESP - IDF 框架实现 JSON 键值对数据创建、读写和解析的 C 语言例程。

环境准备

确保你已经安装了 ESP - IDF 开发环境,并且可以正常编译和烧录代码到 ESP32 - S3 开发板。

代码示例

#include <stdio.h>
#include <string.h>
#include "esp_log.h"
#include "cJSON.h"// 日志标签
static const char *TAG = "JSON_EXAMPLE";// 创建 JSON 键值对数据
char* create_json_data() {// 创建一个新的 JSON 对象cJSON *root = cJSON_CreateObject();if (root == NULL) {ESP_LOGE(TAG, "Failed to create JSON object");return NULL;}// 添加键值对到 JSON 对象cJSON_AddStringToObject(root, "name", "John Doe");cJSON_AddNumberToObject(root, "age", 30);cJSON_AddBoolToObject(root, "is_student", false);// 将 JSON 对象转换为字符串char *json_string = cJSON_Print(root);if (json_string == NULL) {ESP_LOGE(TAG, "Failed to print JSON object");cJSON_Delete(root);return NULL;}// 删除 JSON 对象cJSON_Delete(root);return json_string;
}// 解析 JSON 数据
void parse_json_data(const char *json_string) {// 解析 JSON 字符串cJSON *root = cJSON_Parse(json_string);if (root == NULL) {const char *error_ptr = cJSON_GetErrorPtr();if (error_ptr != NULL) {ESP_LOGE(TAG, "Error before: %s", error_ptr);}return;}// 读取键值对cJSON *name = cJSON_GetObjectItemCaseSensitive(root, "name");cJSON *age = cJSON_GetObjectItemCaseSensitive(root, "age");cJSON *is_student = cJSON_GetObjectItemCaseSensitive(root, "is_student");if (cJSON_IsString(name) && (name->valuestring != NULL)) {ESP_LOGI(TAG, "Name: %s", name->valuestring);}if (cJSON_IsNumber(age)) {ESP_LOGI(TAG, "Age: %d", age->valueint);}if (cJSON_IsBool(is_student)) {ESP_LOGI(TAG, "Is Student: %s", cJSON_IsTrue(is_student) ? "true" : "false");}// 删除解析后的 JSON 对象cJSON_Delete(root);
}void app_main(void) {// 创建 JSON 数据char *json_string = create_json_data();if (json_string != NULL) {ESP_LOGI(TAG, "Created JSON data: %s", json_string);// 解析 JSON 数据parse_json_data(json_string);// 释放 JSON 字符串内存cJSON_free(json_string);}
}

代码解释

  1. 引入头文件:引入了 stdio.hstring.hesp_log.h 和 cJSON.h 头文件,分别用于标准输入输出、字符串处理、ESP - IDF 日志和 JSON 处理。
  2. 创建 JSON 数据create_json_data() 函数创建一个新的 JSON 对象,并添加键值对。然后将 JSON 对象转换为字符串并返回。
  3. 解析 JSON 数据parse_json_data() 函数解析传入的 JSON 字符串,并读取其中的键值对。最后打印出读取到的值。
  4. 主函数:在 app_main() 函数中,调用 create_json_data() 函数创建 JSON 数据,打印创建的 JSON 字符串,然后调用 parse_json_data() 函数解析 JSON 数据。最后释放 JSON 字符串占用的内存。

编译和运行

将上述代码保存为一个 .c 文件,例如 main.c,并将其放置在 ESP - IDF 项目的 main 目录下。然后在终端中进入项目目录,执行以下命令进行编译和烧录:

idf.py build
idf.py -p /dev/ttyUSB0 flash monitor

请将 /dev/ttyUSB0 替换为你的 ESP32 - S3 开发板所使用的串口设备。

注意事项

  • 本示例使用了 cJSON 库,该库是一个轻量级的 JSON 解析库,已经集成在 ESP - IDF 中。
  • 在使用 cJSON 库时,需要注意内存管理,避免内存泄漏。例如,在创建 JSON 对象和打印 JSON 字符串后,需要调用 cJSON_Delete() 和 cJSON_free() 函数释放内存。

=================================================================

以下是几个在 C 语言中多行书写包含字符串和整型混合值的 JSON 键值对数据的例子,分别展示了不同的实现方式。

方式一:利用相邻字符串常量自动拼接特性

#include <stdio.h>int main() {const char *json_data = "{""\"name\": \"John Doe\",""\"age\": 30,""\"city\": \"New York\",""\"id\": 12345,""\"email\": \"johndoe@example.com\"""}";printf("%s\n", json_data);return 0;
}
代码解释:
  • 编译器会自动把相邻的字符串常量拼接成一个完整的字符串。这里将 JSON 的各个键值对拆分成多行书写,其中 "name" 和 "city""email" 的值是字符串,而 "age" 和 "id" 的值是整型。
  • 最后使用 printf 函数将拼接好的 JSON 字符串输出。

方式二:使用字符串拼接函数

#include <stdio.h>
#include <string.h>int main() {char json[512] = "{ ";// 拼接字符串值的键值对strcat(json, "\"name\": \"John Doe\", ");// 拼接整型值的键值对char age_str[10];sprintf(age_str, "\"age\": %d, ", 30);strcat(json, age_str);strcat(json, "\"city\": \"New York\", ");char id_str[10];sprintf(id_str, "\"id\": %d, ", 12345);strcat(json, id_str);strcat(json, "\"email\": \"johndoe@example.com\" ");strcat(json, "}");printf("%s\n", json);return 0;
}
代码解释:
  • 首先定义一个足够大的字符数组 json 用于存储拼接后的 JSON 字符串,并初始化为 作为 JSON 对象的起始。
  • 对于字符串值的键值对,直接使用 strcat 函数进行拼接。
  • 对于整型值的键值对,先使用 sprintf 函数将整型值转换为字符串格式,再将其拼接到 json 数组中。
  • 最后拼接上结束的花括号 },并使用 printf 函数输出最终的 JSON 字符串。

方式三:使用宏定义辅助拼接

#include <stdio.h>#define JSON_KEY_VALUE(key, value) "\"" #key "\": " #value ","int main() {const char *json_data = "{"JSON_KEY_VALUE(name, "John Doe")JSON_KEY_VALUE(age, 30)JSON_KEY_VALUE(city, "New York")JSON_KEY_VALUE(id, 12345)"\"email\": \"johndoe@example.com\"""}";printf("%s\n", json_data);return 0;
}
代码解释:
  • 定义了一个宏 JSON_KEY_VALUE,它可以将键和值转换为 JSON 键值对的字符串格式。
  • 在构建 JSON 字符串时,使用这个宏来处理大部分的键值对,对于一些特殊情况(如最后一个键值对不需要逗号)则直接书写。
  • 最后将拼接好的 JSON 字符串输出。

这几种方式都能实现多行书写包含字符串和整型混合值的 JSON 键值对数据,你可以根据实际情况选择最合适的方法。

http://www.dtcms.com/wzjs/375913.html

相关文章:

  • 海南省建设注册执业资格中心网站成都网站维护
  • 深圳网站上线方案百度做推广一般要多少钱
  • 什么秀网站做效果图服务营销案例100例
  • 厦门网站建设公司哪个好搜索引擎优化介绍
  • 企业网站开发市场百度推广可以自己开户吗
  • 昆明网站建设推荐谁好呢河北百度推广seo
  • 增城网站开发企业网络规划设计方案
  • 湖北可以做网站的公司网站seo优化是什么意思
  • 网站滑动效果怎么做搜索引擎优化营销
  • 做网站可以挣钱吗百度查重工具
  • 网站维护外包方案公司做网站怎么做
  • 工商局网站如何做网登系列推广软文范例
  • 个人电子邮箱怎么注册江苏网站seo设计
  • 专门做童装的网站微信软文范例大全100
  • 零用贷网站如何做百度关键词快速排名
  • 合肥企业做网站重庆旅游seo整站优化
  • 西安网站建设公司哪有关键词优化排名软件s
  • 做淘宝的网站有哪些内容吗阜平网站seo
  • 可以做水果的团购网站网站推广的目的
  • 常用网站域名网站流量统计工具
  • 四川城乡住房城乡建设厅网站首页市场营销比较好写的论文题目
  • 网站维护外包怎么样在百度上免费推广
  • 辽宁建设工程信息网查seo 优化是什么
  • 能看人与动物做的网站app拉新怎么对接渠道
  • 横沥镇做网站免费做网站软件
  • 深圳市住房和建设局网站变更营销号
  • 哪里做网站最好网站如何推广网站运营
  • 网站开发研发工程师岗位职责网页制作模板的网站
  • 网站怎么做搜索引擎才能收录seo网站排名助手
  • 做心理咨询的网站广州网站推广软件