Всем привет!
Обновил библиотеку arduinojson с 5 на 6версию, в ней синтаксис немного поменялся.
Фаил Json лежит в esp8266, данные нормально считываю, а вот при попытке записать (обновить) данные, затираются все кроме добавленного параметра
Работающая функция в 5ой версии, которая обнавляет нужный параметр edit_var на значение var :
А вот в 6-ой версии:
Или в таком варианте:
Вставляет только указанные параметры, т.е. не берет данные с файла, а просто вставляет 1 значение, если добавить еще строку doc["параметр1"] = "значение"; он ее тоже добавляет.
Даже если открыть фаил с параметром "а", то в конец запишет только указанный параметр, как можно сделать что бы из файла загрузились все параметры в doc
Параметр 1 =
Параметр 2 =
.....
, а затем в нем поменять?
Обновил библиотеку arduinojson с 5 на 6версию, в ней синтаксис немного поменялся.
Фаил Json лежит в esp8266, данные нормально считываю, а вот при попытке записать (обновить) данные, затираются все кроме добавленного параметра
Работающая функция в 5ой версии, которая обнавляет нужный параметр edit_var на значение var :
C++:
void saveConfig(String edit_var, String value) {
DynamicJsonBuffer jsonBuffer;
JsonObject& json = jsonBuffer.parseObject(jsonConfig);
json[edit_var] = value;
json.printTo(jsonConfig);
// Открываем файл для записи
File f = SPIFFS.open(dev_config_file, "w");
json.printTo(f);
f.close();
}
C++:
void saveConfig(String edit_var, String value) {
File f = SPIFFS.open(dev_config_file, "w");
DynamicJsonDocument doc(1024);
doc[edit_var] = value;
serializeJson(doc, f);
f.close();
}
Код:
File f = SPIFFS.open(dev_config_file, "w");
jsonConfig = f.readString();
DynamicJsonDocument doc(capacity);
DeserializationError error = deserializeJson(doc, jsonConfig);
doc[edit_var] = value;
serializeJson(doc, f);
f.close();
Даже если открыть фаил с параметром "а", то в конец запишет только указанный параметр, как можно сделать что бы из файла загрузились все параметры в doc
Параметр 1 =
Параметр 2 =
.....
, а затем в нем поменять?