我目前正在做一个与ESP8266 (ESP-12E)的项目,我需要将信息存储在一个json文件中(对我来说,通过web界面访问更方便,也更容易管理)。
我的问题是:我使用的是ArduinoJSON (6)的最新版本,但除了他们的网站之外,我没有看到太多的例子,而且这段代码对我来说不起作用:
void DeleteCycle(size_t idtodelete) {
File schedules = SPIFFS.open("/schedules.json", "r");
if(schedules && schedules.size()) {
DynamicJsonDocument schedulesjson(1300);
DeserializationError err = deserializeJson(schedulesjson, schedules);
Serial.println(err.c_str());
if (err) {
Serial.print(F("deserializeJson() failed with code "));
Serial.println(err.c_str());
}
else {
JsonArray array = schedulesjson.to<JsonArray>();
// array.remove(0);
serializeJson(array, Serial);
}
schedules.close();
}
else {
Serial.println("Failed to read file.");
}
}我猜问题出在JsonArray,它是空的!但我的JsonDocument不是,因为如果我这样做了
JsonObject obj = schedulesjson[0];
String test = obj["name"];
Serial.println("Test : " + test);我在索引0处获得数组的第一个键值(name
这是我在StackOverflow上的第一篇文章,我希望我做的是对的,提前感谢你的帮助!
发布于 2020-06-09 00:14:10
我回答自己是因为我找到了解决问题的办法:写
schedulesjson.to<JsonArray>();清空json文档,因此必须将其放在
DeserializationError err = deserializeJson(schedulesjson, schedules);https://stackoverflow.com/questions/61999350
复制相似问题