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

问题描述 投票:0回答:1

我目前正在使用ESP8266(ESP-12E)进行项目开发,我需要将信息存储在json文件中(对我来说,通过Web界面访问比EEPROM更方便,并且比EEPROM更易于管理)。

我的问题如下:我正在使用最新版本的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处获得数组的第一个键值(名称)

这是我在StackOverflow上的第一篇文章,希望我做对了,在此先感谢您的帮助!

esp8266 spiffs arduinojson
1个回答
0
投票

我回答自己,因为我找到了解决问题的方法:写作

schedulesjson.to<JsonArray>();

清空json文档,因此您必须将其放在]之前>

DeserializationError err = deserializeJson(schedulesjson, schedules);
    
© www.soinside.com 2019 - 2024. All rights reserved.