问题标签 [arduinojson]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何让 Visual Studio Code 包含带尖括号 <> 的非标准库?
我正在尝试使用带有 VSC 扩展Code Runner的ArduinoJson库运行程序,但我无法编译它。
VSC 中没有标记错误或警告,但是当我尝试运行此代码段时:
我得到下面的错误输出:
在 ArduinoJson 库中,有一些使用双引号的包含命令和一些使用尖括号的命令:
似乎只有带有尖括号的包含语句是一个问题。我已经尝试在 settings.json 以及 c_cpp_properties.json 中更新我的包含路径以涵盖这一点,但它没有奏效:
在 settings.json 中:
在 c_cpp_properties.json 中:
有谁知道我可能做错了什么?
我的文件夹结构是
项目/
--src/
----localtest.cpp --External_Libraries
/
----ArduinoJson/
arduino - 发送 json 对象并重置时 esp8266 崩溃
你好,我正在尝试使用 arduinoJson 库发送 JSON 对象。当它是一个小的 json 对象时一切正常,但是当它变大时,esp8266 崩溃并重置。我可以在调试时看到它创建了 json 对象,但是当它使用 ajax POST 方法发送它时它崩溃了。在图片中,您可以看到串行监视器,您还可以看到创建了 json 对象,但是当它发送它时,esp8266 崩溃并重新启动Serial debug。我相信问题与这行代码有关可能的问题
esp8266 上的代码如下所示。
我的代码的最后一部分是 HTML/JAVASCRIPT,它看起来像这样。
c++ - AndroidJSON解析嵌套的GET-Response
我正在尝试迭代一个嵌套的 JSON 对象,我从我的 Hue-Bridge 获得一个 HTTP-GET 响应。响应是这样的:
现在我对成员 lightstates 和包含的子对象感兴趣,并使用循环(或类似 thsi 的东西)迭代子项。
我的 Arduino (NodeMCU)-代码如下所示:
因此,我从 Bridge 获得了有效的 json 响应,但 for 循环不打印任何内容。目标是迭代lightstates并将值放入具有类似于签名的方法中
如果有人对我有想法,那就太好了。
arrays - 鉴于对象名称匹配(ArduinoJson),如何将json对象的所有成员复制到二维数组
我正在做一个 Arduino 项目,该项目将为我混合鸡尾酒。我决定将鸡尾酒列表保存在名为鸡尾酒会.json 的 JSON 文件中,该文件保存在 SD 卡上,并且在选择鸡尾酒时,我希望 Arduino 在 JSON 文件中找到它的配方。JSON 的一小段代码如下所示:
假设我告诉 Arduino 我想要鸡尾酒“美式咖啡”。我希望 Arduino 复制对象“Americano”下的所有数据并将其保存到我在以下结构中创建的二维数组中:
该数组被初始化为 [7][1],因为最多有 8 种潜在成分,并且它们都与数量乘数配对。我不知道如何将整个字符串复制到数组中,以便将配方保存在内存中。我使用 ArduinoJson 库来解析 JSON 文件。最终目标是数组看起来像这样:
c++ - 如何检查一个值是否字面上为空
我有一个这样的 JSON 对象:
如何检查 foo 的值是否是文字null
。我找到了函数JsonObject::isNull()但这显然是为了
测试 JsonObject 是否指向一个对象
这不是我希望我的代码检查的内容,但我找不到解决此问题的方法。
arduino - 如何加载配置并保存新配置 LittleFS ESP32?
我在数据文件夹中使用一个 json 文件。我想将其用作配置文件并根据需要使用值更新它。我有一个简单的草图来存储 ssid 和密码。先读出,再修改,再通过串口监视器读出,进行测试。
问题是第一次读取似乎已经被覆盖,即使我稍后调用覆盖函数,我已经在第一次读取和覆盖函数之间使用不同的延迟对其进行了测试。
这似乎很简单,那么为什么它会在调用函数之前显示覆盖的值?
这是代码:
以下是 readJSON 和 writeFile 函数:
配置.json:
输出:
c++ - 为 C++/Arduino 中的类数组创建查找表
我有多种类型的课程。每种类型都有一个数组和数组中的索引。
如果一个外部函数只知道一个类的字符串 ID 并且想要使用它的公共函数,它必须在它的数组中通过 ID 搜索那个特定的类。
这实在是太低效了。我在运行时创建的所有类和一个创建它的函数,将它放入一个数组中。
我想在创建类时为此创建某种查找表,因此任何外部函数如果想要使用一个类,则不必在类的数组上循环并检查每个 ID 是否匹配但能够通过一些结构或数组到达类。
现在是如何完成的:
这是我的问题。每次某些外部函数想要对其中一个类做某事时,我都必须按 ID 搜索一个类。
我不知道我会怎么做。在 JS 中,我会为查找表创建一个对象,每次创建一个类时,我都会将它的 ID 作为键,并将它的索引作为如下值:
我这样做是为了“大规模操作”:
但我不能在 C 或 Arduino C++ 中做到这一点。我希望我很清楚。
UI:类 id 由数字和字符组成。id 永远不能以数字开头。示例:“v_kw62ffss_xg0syjlvrokbxciv65a8y”
arduino - ESP32 - 色相流(Arduino / ArduinoJson)
希望有人能帮我解决我的问题。我尝试使用 V2 API 将我的 ESP32 连接到我的 HUE 集线器。连接到集线器工作正常,输出
USE_SERIAL.write(buff, c);)
也工作正常。但是我的 StaticJsonDocument 仍然是空的,我没有发现问题。
deserializeJson 有问题吗?或者我的推理哪里错了?
感谢 gre_gor 的有用评论。现在,我发现 JSON 输入无效(DeserializationError::InvalidInput)。这是 SerialPrint - 输出的示例:
11:44:48.282 -> id: 1645699488:0
11:44:48.282 -> data: [{"creationtime":"2022-02-24T10:44:48Z","data":[{"id":"0659c643-e965-49d2-9653-eba02e6495e8","id_v1":"/sensors/28","motion":{"motion":false,"motion_valid":true},"owner":{"rid":"116ac210-b979-4644-a32d-edc82c1bf09f","rtype":"device"},"type":"motion"}],"id":"259793ec-5e16-4981-81bf-0d5eb233eca0","type":"update"}]
应该是有效的 JSON,还是?