ArduinoJSON:如何修复打印 1 或 0 而不是 true/false

arduinojson_boolean_issue.cpp
volatile bool value = true;

DynamicJsonDocument json(1024);
json["ok"] = value;
serializeJson(json, Serial);

由于 value 被声明为 volatile,这将打印 {"ok": 1} 而不是 {"ok": true}(仅使用 bool value 时有效,使用 volatile bool value 时无效)。

为了强制 {"ok": true},只需将 value 转换为 bool

arduinojson_boolean_cast.cpp
json["ok"] = (bool)value;

完整示例

arduinojson_full_example.cpp
volatile bool value = true;

DynamicJsonDocument json(1024);
json["ok"] = (bool)value;
serializeJson(json, Serial);

Check out similar posts by category: Arduino, Embedded, PlatformIO