diff --git a/src/JsonHelper.cc b/src/JsonHelper.cc index e1c4058..b15220c 100644 --- a/src/JsonHelper.cc +++ b/src/JsonHelper.cc @@ -262,3 +262,25 @@ void JsonHelper::saveGeoCoordinateArray(const QList& rgPoints } return saveGeoCoordinateArray(rgVarPoints, writeAltitude, jsonValue); } + +bool JsonHelper::validateKeys(const QJsonObject& jsonObject, const QList& keyInfo, QString& errorString) +{ + QStringList keyList; + QList typeList; + + for (int i=0; i& types, QString& errorString); + typedef struct { + const char* key; ///< json key name + QJsonValue::Type type; ///< type of key + bool required; ///< true: key must be present + } KeyValidateInfo; + + static bool validateKeys(const QJsonObject& jsonObject, const QList& keyInfo, QString& errorString); + /// Loads a QGeoCoordinate /// @return false: validation failed static bool loadGeoCoordinate(const QJsonValue& jsonValue, ///< json value to load from