Arduino ESP 8266 ESPAsyncWebServer AsyncCallbackJsonWebHandler
Arduino-ESP 8266 踩坑(一) ESPAsyncWebServer AsyncCallbackJsonWebHandler
在使用 ESPAsyncWebServer 时 由于我想用 asyncWebServer 通过 application/json POST 请求拿数据, 就翻看了 ESPAsyncWebServer 的 git 文档, 他是这样说的 :
//JSON body handling with ArduinoJson
//Endpoints which consume JSON can use a special handler to get ready to use JSON data in the request callback:
#include "AsyncJson.h"
#include "ArduinoJson.h"AsyncCallbackJsonWebHandler* handler = new AsyncCallbackJsonWebHandler("/rest/endpoint", [](AsyncWebServerRequest *request, JsonVariant &json) {JsonObject& jsonObj = json.as<JsonObject>();// ...
});
server.addHandler(handler);
编译报错:
error: cannot bind non-const lvalue reference of type ‘ArduinoJson::V6213PB2::JsonObject&’ to an rvalue of type ‘ArduinoJson::V6213PB2::detail::enable_if<true, ArduinoJson::V6213PB2::JsonObject>::type’ {aka ‘ArduinoJson::V6213PB2::JsonObject’}
44 | JsonObject &jsonObj = json.as();
我承认我很菜,但是对于一个仅初步学习过 C/C++ 的初学者来说, 我很难找到问题.
于是乎我又跑去翻看 ArduinoJson 的文档:
官网 Example
StaticJsonDocument<256> doc;
JsonObject object = doc.to<JsonObject>();
object["hello"] = "world";
const char* world = object["hello"];
我才发现 AsyncCallbackJsonWebHandler 文档上面的代码有一点小问题, 就是这句话:
JsonObject& jsonObj = json.as<JsonObject>();
所以 请去掉 & 符号, 这个问题困扰了我一天, 该文长点记性
所以正确的写法应该是:
AsyncCallbackJsonWebHandler *handler =new AsyncCallbackJsonWebHandler("/updateSetObj",[](AsyncWebServerRequest *request, JsonVariant &json){JsonObject jsonObj = json.as<JsonObject>();const char* lpwm = jsonObj["lPwm"];Serial.println("------------------");Serial.println(lpwm);request->send(200, "application/json", "{\"code\": 1}");});server.addHandler(handler);
结果

相关文章:
Arduino ESP 8266 ESPAsyncWebServer AsyncCallbackJsonWebHandler
Arduino-ESP 8266 踩坑(一) ESPAsyncWebServer AsyncCallbackJsonWebHandler 在使用 ESPAsyncWebServer 时 由于我想用 asyncWebServer 通过 application/json POST 请求拿数据, 就翻看了 ESPAsyncWebServer 的 git 文档, 他是这样说的 : //JSON body handling with ArduinoJ…...
Source Insight_突出显示对选定字符的引用
1、突出显示对选定字符的引用 在Source Insight中,当我们选中一个函数或者变量的时候,关于它的所有引用地方都高亮显示,想要实现效果如下。 2、配置方法 (1)点击"Options"→“File Type options...” (2)勾选“Highlight referenc…...
高等数学上册 第五章 定积分 知识点总结
定积分 定积分的性质: ( 1 ) ∫ a b [ α f ( x ) β g ( x ) ] d x α ∫ a b f ( x ) d x β ∫ a b g ( x ) d x ( 2 )设 a < c < b ,则 ∫ a b f ( x ) d x ∫ a c f ( x ) d x ∫ c b f ( …...
【无标题】uniapp引入萤石云 真机无法运行 踩坑集合
Uniapp 接入萤石云 踩坑 1.先用了 UIKit Javascript 就是在 pc端 那套流程 npm install ezuikit-jsimport EZUIKit from ezuikit-js;这套流程貌似只适用于pc端,我在接入uniapp的时候没看官网 以为都是一套流程,然后就在uniapp中也来了这一套࿰…...
python函数
目录 函数基本语法 函数定义 函数调用 形式参数和实际参数 None类型 None主要作用 函数的说明文档 语法 变量的作用域 变量分类 global关键字 不加global关键字 加global关键字 函数的多返回值 多返回值写法 函数的四种传参方式 位置参数 关键字参数 缺省参…...
【Linux】进程间通信——system V共享内存
目录 写在前面的话 System V共享内存原理 System V共享内存的建立 代码实现System V共享内存 创建共享内存shmget() ftok() 删除共享内存shmctl() 挂接共享内存shmat() 取消挂接共享内存shmdt() 整体通信流程的实现 写在前面的话 上一章我们讲了进程间通信的第一种方式…...
【数据结构】快速排序
快速排序是一种高效的排序算法,其基本思想是分治法。它将一个大问题分解成若干个小问题进行解决,最后将这些解合并得到最终结果。 快速排序的主要思路如下: 选择一个基准元素:从待排序的数组中选择一个元素作为基准(…...
人机融合智能中的事实与价值
在人机融合智能中,事实和价值分别扮演着不同的角色和功能。 事实是客观存在的真实描述,可以通过数据、观测和验证等方式获取。在人机融合智能中,人工智能通过处理和分析大量的数据来提供客观事实的支持。例如,在搜索引擎中&#x…...
JVM | 从类加载到JVM内存结构
引言 我在上篇文章:JVM | 基于类加载的一次完全实践 中为你讲解如何请“建筑工人”来做一些定制化的工作。但是,大型的Java应用程序时,材料(类)何止数万,我们直接堆放在工地上(JVM)…...
Golang之路---04 并发编程——WaitGroup
WaitGroup 为了保证 main goroutine 在所有的 goroutine 都执行完毕后再退出,前面使用了 time.Sleep 这种简单的方式。 由于写的 demo 都是比较简单的, sleep 个 1 秒,我们主观上认为是够用的。 但在实际开发中,开发人员是无法…...
React(4)
1.属性(props)初始 状态state都是组件内部写的,也就是A组件内的state就只能A组件里面用,其他组件复用不了。因此属性props就可以。 比如一个导航栏,首页有,购物车有,我的有,他们三个…...
STM32 CubeMX USB_(HID 鼠标和键盘)
STM32 CubeMX STM32 CubeMX USB_HID(HID 鼠标和键盘) STM32 CubeMX前言 《鼠标小节》一、STM32 CubeMX 设置USB时钟设置USB使能UBS功能选择 二、代码部分添加代码鼠标发送给PC的数据解析实验效果 《键盘小节》STM32 CubeMX 设置(同上…...
[PM]敏捷开发之Scrum总结
在项目管理中,不少企业和项目团队也发现传统的项目管理模式已不能很好地适应今天的项目环境的要求。因此,敏捷项目管理应运而生,本文将为大家介绍Scrum敏捷项目管理以及应用方法。 什么是Scrum敏捷项目管理 敏捷项目管理作为新兴的项目管理模…...
大数据Flink(五十七):Yarn集群环境(生产推荐)
文章目录 Yarn集群环境(生产推荐) 一、准备工作...
web集群学习:源码安装nginx配置启动服务脚本
1、源码安装nginx,并提供服务脚本。 1、源码安装会有一些软件依赖 (1)检查并安装 Nginx 基础依赖包 pcre-devel 、openssl-devel # rpm -qa | egrep pcre-devel | openssl-devel(2)安装 Nginx 所需的 pcre 库 正则支…...
LNMP
lNmp安装: 一、LNMP LNMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件, 能够提供动态Web站点服务及其应用开发环境。LNMP是一个缩写词,具体包括Linux操作系统、nginx网站服务器、MySQL数据库服务…...
Python网络爬虫在信息采集中的应用及教程
Python网络爬虫在信息采集中的应用与法律警告 摘要 随着互联网的发展,我们每天都面临着海量的信息。这些信息蕴含着无尽的价值,而要从中获取有用的数据,网络爬虫就成了我们的得力助手。Python作为一门简单而又强大的编程语言,被…...
云主机测试Flink磁盘满问题解决
问题描述: 使用云主机测试Flink时,根目录满了。 经排查发现运行Flink任务后根目录空间一直在减少,最后定位持续增加的目录是/tmp目录 解决方法: 修改Flink配置使用一个相对较大的磁盘目录做为Flink运行时目录 # Override the…...
iOS开发-NSOperationQueue实现上传图片队列
iOS开发-NSOperationQueue实现上传图片队列 在开发中,遇到发帖需要上传图片,需要上传队列,这时候用到了NSOperationQueue 一、NSOperation与NSOperationQueue 什么NSOperation NSOperation为控制任务状态、优先级、依赖关系以及任务管理提…...
通过 CCIP 构建跨链应用(5 个案例)
Chainlink 的跨链互操作性协议(CCIP)是一种新的通用跨链通信协议,为智能合约开发人员提供了以最小化信任的方式在区块链网络之间传输数据和通证的能力。 目前,部署在多个区块链上的应用程序面临着资产、流动性和用户的碎片化问题…...
javase的第一次博客
1,计算机简介:用于数据计算和处理2,计算机的硬件和软件:计算机硬件:运算器,控制器,存储器,输入设备,输出设备(冯 诺依曼模型)CPU:运算…...
3步打造游戏性能优化神器:DLSS Swapper零基础掌握指南
3步打造游戏性能优化神器:DLSS Swapper零基础掌握指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为PC游戏玩家设计的DLSS版本管理工具,通过自动化版本切换、智能游戏扫…...
如何快速打造高效办公界面:Office功能区的终极定制指南
如何快速打造高效办公界面:Office功能区的终极定制指南 【免费下载链接】office-custom-ui-editor 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor Office Custom UI Editor 是一款由微软官方开源的强大工具,让您无需编写…...
Qwen3-0.6B-FP8数据库智能查询:用自然语言生成SQL语句
Qwen3-0.6B-FP8数据库智能查询:用自然语言生成SQL语句 你有没有过这样的经历?面对一个数据库,明明知道数据就在里面,却因为不懂SQL而束手无策。想查“上个月哪个产品卖得最好”,或者“找出最近三个月复购率最高的客户…...
深度学习特征分解、SVD 与 PCA —— 矩阵的“质因数分解“(六)
1. 定位导航 本篇是第2章线性代数的终篇,覆盖三个最有力的矩阵分析工具:特征分解、奇异值分解(SVD)、主成分分析(PCA)。此外还包括三个辅助工具:Moore-Penrose 伪逆、迹运算、行列式。 这些工具贯穿深度学习的方方面面——PCA 用于数据预处理和降维,SVD 用于模型压缩…...
Driver Store Explorer:Windows驱动管理的终极免费解决方案,轻松释放10GB+磁盘空间
Driver Store Explorer:Windows驱动管理的终极免费解决方案,轻松释放10GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Driver Store Explorer&#x…...
阿里云代理商:OpenClaw 技能安全部署指南与高口碑扩展精选
在集成任何 OpenClaw 第三方功能模块前,安全防护是首要环节。核心流程是借助官方安全审查工具,预先扫描潜在威胁,避免因加载恶意模块引发的数据泄漏或设备隐患。1. 核心安防工具部署优先部署 skill-vetting 安全扫描工具(OpenClaw…...
ONLYOFFICE社区模块功能详解:博客、论坛、投票与Wiki的完整协作指南
ONLYOFFICE社区模块功能详解:博客、论坛、投票与Wiki的完整协作指南 【免费下载链接】CommunityServer Free open source office suite with business productivity tools: document and project management, CRM, mail aggregator. 项目地址: https://gitcode.co…...
避坑指南:Python中Theil-Sen和Mann-Kendall检验的5个常见错误
避坑指南:Python中Theil-Sen和Mann-Kendall检验的5个常见错误 在时间序列分析领域,Theil-Sen Median斜率估计与Mann-Kendall检验的组合堪称经典搭档。这对非参数方法组合能有效应对异常值干扰,且不依赖数据分布假设,被广泛应用于环…...
Intv_AI_MK11 Anaconda数据科学环境配置:一站式AI研发平台搭建
Intv_AI_MK11 Anaconda数据科学环境配置:一站式AI研发平台搭建 1. 为什么选择Anaconda搭建AI开发环境 如果你刚开始接触AI开发,可能会被各种环境配置问题困扰。不同框架的版本兼容性、CUDA驱动安装、Python包依赖冲突...这些问题足以让新手望而却步。A…...
