From 2fce26ff297f7c4f363d315085fa034bdcaba497 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 8 Oct 2021 18:33:35 +0800 Subject: [PATCH] arduino json 6 --- include/Consts.h | 1 + platformio.ini | 4 +- src/Utils/JsonUtils.cpp | 109 ++++++++++++++++++++++++++++++---------- 3 files changed, 86 insertions(+), 28 deletions(-) diff --git a/include/Consts.h b/include/Consts.h index 959e00ff..3ca3b744 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -46,6 +46,7 @@ #define MYSENSORS #endif +#define JSON_BUFFER_SIZE 1024 #define NUM_BUTTONS 6 #define MQTT_RECONNECT_INTERVAL 20000 #define CHANGE_BROKER_AFTER 5 diff --git a/platformio.ini b/platformio.ini index af26cc6c..21bbf0cc 100644 --- a/platformio.ini +++ b/platformio.ini @@ -13,7 +13,7 @@ ;To choose firmware please use one of definition: ;esp8266_1mb , esp8266_4mb , esp32_4mb , esp8266_mysensors_4mb , esp32_mysensors_4mb [platformio] -default_envs = esp32_4mb +default_envs = esp8266_4mb ;data_esp => esp8266_1mb , esp8266_4mb , esp32_4mb @@ -25,7 +25,7 @@ data_dir = data_esp [common_env_data] lib_deps_external = - bblanchon/ArduinoJson @5.* + bblanchon/ArduinoJson @6.18.0 knolleary/PubSubClient diff --git a/src/Utils/JsonUtils.cpp b/src/Utils/JsonUtils.cpp index ca70c082..6c0167d6 100644 --- a/src/Utils/JsonUtils.cpp +++ b/src/Utils/JsonUtils.cpp @@ -1,53 +1,110 @@ #include "Utils/JsonUtils.h" -#include "Utils/FileUtils.h" + +#include + #include "Global.h" +#include "Utils/FileUtils.h" + +//String jsonReadStr(String& json, String name) { +// DynamicJsonBuffer jsonBuffer; +// JsonObject& root = jsonBuffer.parseObject(json); +// return root[name].as(); +//} +// +//boolean jsonReadBool(String& json, String name) { +// DynamicJsonBuffer jsonBuffer; +// JsonObject& root = jsonBuffer.parseObject(json); +// return root[name].as(); +//} +// +//int jsonReadInt(String& json, String name) { +// DynamicJsonBuffer jsonBuffer; +// JsonObject& root = jsonBuffer.parseObject(json); +// return root[name]; +//} +// +//String jsonWriteStr(String& json, String name, String value) { +// DynamicJsonBuffer jsonBuffer; +// JsonObject& root = jsonBuffer.parseObject(json); +// root[name] = value; +// json = ""; +// root.printTo(json); +// return json; +//} +// +//String jsonWriteBool(String& json, String name, boolean value) { +// return jsonWriteStr(json, name, value ? "1" : "0"); +//} +// +//String jsonWriteInt(String& json, String name, int value) { +// DynamicJsonBuffer jsonBuffer; +// JsonObject& root = jsonBuffer.parseObject(json); +// root[name] = value; +// json = ""; +// root.printTo(json); +// return json; +//} +// +//String jsonWriteFloat(String& json, String name, float value) { +// DynamicJsonBuffer jsonBuffer; +// JsonObject& root = jsonBuffer.parseObject(json); +// root[name] = value; +// json = ""; +// root.printTo(json); +// return json; +//} +// +//void saveConfig() { +// writeFile(String("config.json"), configSetupJson); +//} +// +//void saveStore() { +// writeFile(String("store.json"), configStoreJson); +//} String jsonReadStr(String& json, String name) { - DynamicJsonBuffer jsonBuffer; - JsonObject& root = jsonBuffer.parseObject(json); - return root[name].as(); + DynamicJsonDocument doc(JSON_BUFFER_SIZE); + deserializeJson(doc, json); + return doc[name].as(); } boolean jsonReadBool(String& json, String name) { - DynamicJsonBuffer jsonBuffer; - JsonObject& root = jsonBuffer.parseObject(json); - return root[name].as(); + DynamicJsonDocument doc(JSON_BUFFER_SIZE); + deserializeJson(doc, json); + return doc[name].as(); } int jsonReadInt(String& json, String name) { - DynamicJsonBuffer jsonBuffer; - JsonObject& root = jsonBuffer.parseObject(json); - return root[name]; + DynamicJsonDocument doc(JSON_BUFFER_SIZE); + deserializeJson(doc, json); + return doc[name].as(); } String jsonWriteStr(String& json, String name, String value) { - DynamicJsonBuffer jsonBuffer; - JsonObject& root = jsonBuffer.parseObject(json); - root[name] = value; - json = ""; - root.printTo(json); + DynamicJsonDocument doc(JSON_BUFFER_SIZE); + deserializeJson(doc, json); + doc[name] = value; return json; } String jsonWriteBool(String& json, String name, boolean value) { - return jsonWriteStr(json, name, value ? "1" : "0"); + DynamicJsonDocument doc(JSON_BUFFER_SIZE); + deserializeJson(doc, json); + doc[name] = value; + return json; } String jsonWriteInt(String& json, String name, int value) { - DynamicJsonBuffer jsonBuffer; - JsonObject& root = jsonBuffer.parseObject(json); - root[name] = value; - json = ""; - root.printTo(json); + DynamicJsonDocument doc(JSON_BUFFER_SIZE); + deserializeJson(doc, json); + doc[name] = value; return json; } String jsonWriteFloat(String& json, String name, float value) { - DynamicJsonBuffer jsonBuffer; - JsonObject& root = jsonBuffer.parseObject(json); - root[name] = value; - json = ""; - root.printTo(json); + DynamicJsonDocument doc(JSON_BUFFER_SIZE); + deserializeJson(doc, json); + doc[name] = value; return json; }