diff --git a/src/JsonHelper.cc b/src/JsonHelper.cc index a22846b64bc451c898a353321dfcf1476fae405d..d3738d656d81c86fdfc451bea559b50536a94a58 100644 --- a/src/JsonHelper.cc +++ b/src/JsonHelper.cc @@ -58,10 +58,17 @@ bool JsonHelper::toQGeoCoordinate(const QJsonValue& jsonValue, QGeoCoordinate& c QJsonArray coordinateArray = jsonValue.toArray(); int requiredCount = altitudeRequired ? 3 : 2; if (coordinateArray.count() != requiredCount) { - errorString = QString("Json array must contains %1 values").arg(requiredCount); + errorString = QString("Coordinate array must contain %1 values").arg(requiredCount); return false; } + foreach(const QJsonValue& jsonValue, coordinateArray) { + if (jsonValue.type() != QJsonValue::Double) { + errorString = QString("Coordinate array may only contain double values, found: %1").arg(jsonValue.type()); + return false; + } + } + coordinate = QGeoCoordinate(coordinateArray[0].toDouble(), coordinateArray[1].toDouble()); if (altitudeRequired) { coordinate.setAltitude(coordinateArray[2].toDouble());