首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用ArduinoJSON 6从ESP8266的SPIFFS中读取json文件?

如何用ArduinoJSON 6从ESP8266的SPIFFS中读取json文件?
EN

Stack Overflow用户
提问于 2020-05-25 17:16:34
回答 1查看 2.2K关注 0票数 0

我目前正在做一个与ESP8266 (ESP-12E)的项目,我需要将信息存储在一个json文件中(对我来说,通过web界面访问更方便,也更容易管理)。

我的问题是:我使用的是ArduinoJSON (6)的最新版本,但除了他们的网站之外,我没有看到太多的例子,而且这段代码对我来说不起作用:

代码语言:javascript
复制
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不是,因为如果我这样做了

代码语言:javascript
复制
JsonObject obj = schedulesjson[0];
String test = obj["name"];
Serial.println("Test : " + test);

我在索引0处获得数组的第一个键值(name

这是我在StackOverflow上的第一篇文章,我希望我做的是对的,提前感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-09 00:14:10

我回答自己是因为我找到了解决问题的办法:写

代码语言:javascript
复制
schedulesjson.to<JsonArray>();

清空json文档,因此必须将其放在

代码语言:javascript
复制
DeserializationError err = deserializeJson(schedulesjson, schedules);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61999350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档