From 128004f35f55ab92e3f57ff53de60a004c815e48 Mon Sep 17 00:00:00 2001 From: Patrick Balsiger Date: Sun, 18 Nov 2018 18:46:35 +0100 Subject: [PATCH] add const char variation for getattr --- src/JsonStruct.h | 80 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 23 deletions(-) diff --git a/src/JsonStruct.h b/src/JsonStruct.h index 6b21a7d..8c0056e 100644 --- a/src/JsonStruct.h +++ b/src/JsonStruct.h @@ -7,71 +7,105 @@ #include "SPIFFS.h" #endif -struct JsonStruct { +struct JsonStruct +{ int valid = 0; - + // ------------------------------------------------------------------------------------------ - virtual void mapJsonObject(JsonObject& json); - virtual void fromJsonObject(JsonObject& json); - virtual int verifyJsonObject(JsonObject& json){ + virtual void mapJsonObject(JsonObject &json); + virtual void fromJsonObject(JsonObject &json); + virtual int verifyJsonObject(JsonObject &json) + { return json.success(); }; - String toJsonString(){ + String toJsonString() + { DynamicJsonBuffer jsonBuffer(JSON_ARRAY_SIZE(300)); - JsonObject& root = jsonBuffer.createObject(); + JsonObject &root = jsonBuffer.createObject(); mapJsonObject(root); String jsonString; root.printTo(jsonString); return jsonString; } - String getAttrFromJson(JsonObject& json, const char* attr, String defautValue = ""){ - if(json.containsKey(String(attr))){ + String getAttrFromJson(JsonObject &json, const char *attr, String defautValue = "") + { + if (json.containsKey(String(attr))) + { const char *value = json[attr]; return String(value); } return defautValue; } - int getIntAttrFromJson(JsonObject& json, const char* attr, int defautValue = 0){ - if(json.containsKey(attr)){ + const char *getAttr(JsonObject &json, const char *attr, const char *defautValue = "") + { + if (json.containsKey(String(attr))) + { + const char *value = json[attr]; + return value; + } + return defautValue; + } + + String getStrAttrFromJson(JsonObject &json, const char *attr, String defautValue = "") + { + if (json.containsKey(String(attr))) + { + const char *value = json[attr]; + return String(value); + } + return defautValue; + } + + int getIntAttrFromJson(JsonObject &json, const char *attr, int defautValue = 0) + { + if (json.containsKey(attr)) + { return json[attr]; } return defautValue; } // Map a json object to this struct. // Parse a json string and map parsed object - void fromJsonString(String& str){ + void fromJsonString(String &str) + { DynamicJsonBuffer jsonBuffer(JSON_ARRAY_SIZE(300)); - JsonObject& json = jsonBuffer.parseObject(str); + JsonObject &json = jsonBuffer.parseObject(str); valid = verifyJsonObject(json); - if(valid) { + if (valid) + { fromJsonObject(json); } }; - void fromFile(const char* path) { + void fromFile(const char *path) + { File configFile = SPIFFS.open(path, "r"); String cfgFileStr = configFile.readString(); DynamicJsonBuffer jsonBuffer; - JsonObject& json = jsonBuffer.parseObject(cfgFileStr); - + JsonObject &json = jsonBuffer.parseObject(cfgFileStr); + valid = verifyJsonObject(json); - if(configFile) { + if (configFile) + { fromJsonObject(json); - } - if(!valid){ + } + if (!valid) + { Serial.println("ERROR: read failed for " + String(path)); } configFile.close(); } - void saveFile(const char* path) { + void saveFile(const char *path) + { File configFile = SPIFFS.open(path, "w"); DynamicJsonBuffer jsonBuffer(JSON_ARRAY_SIZE(300)); - JsonObject& json = jsonBuffer.createObject(); + JsonObject &json = jsonBuffer.createObject(); valid = configFile && verifyJsonObject(json); - if(valid){ + if (valid) + { mapJsonObject(json); json.printTo(configFile); }