diff --git a/src/librssguard/services/standard/jsonparser.cpp b/src/librssguard/services/standard/jsonparser.cpp index c0d569d25..7c1885c07 100644 --- a/src/librssguard/services/standard/jsonparser.cpp +++ b/src/librssguard/services/standard/jsonparser.cpp @@ -2,6 +2,7 @@ #include "services/standard/jsonparser.h" +#include "exceptions/feedfetchexception.h" #include "miscellaneous/textfactory.h" #include @@ -12,7 +13,14 @@ JsonParser::JsonParser(const QString& data) : m_jsonData(data) {} QList JsonParser::messages() const { QList msgs; - QJsonDocument json = QJsonDocument::fromJson(m_jsonData.toUtf8()); + QJsonParseError json_err; + QJsonDocument json = QJsonDocument::fromJson(m_jsonData.toUtf8(), &json_err); + + if (json.isNull() && !json_err.errorString().isEmpty()) { + throw FeedFetchException(Feed::Status::ParsingError, + QObject::tr("JSON error '%1'").arg(json_err.errorString())); + } + QString global_author = json.object()[QSL("author")].toObject()[QSL("name")].toString(); if (global_author.isEmpty()) {