mirror-chatterino2/src/common/NetworkResult.cpp

61 lines
1.2 KiB
C++
Raw Normal View History

#include "common/NetworkResult.hpp"
#include "debug/Log.hpp"
#include <rapidjson/document.h>
#include <rapidjson/error/en.h>
#include <QJsonDocument>
namespace chatterino {
NetworkResult::NetworkResult(const QByteArray &data)
: data_(data)
{
}
QJsonObject NetworkResult::parseJson() const
{
QJsonDocument jsonDoc(QJsonDocument::fromJson(this->data_));
2018-10-21 13:43:02 +02:00
if (jsonDoc.isNull())
{
return QJsonObject{};
}
return jsonDoc.object();
}
2019-09-03 23:32:22 +02:00
QJsonArray NetworkResult::parseJsonArray() const
{
QJsonDocument jsonDoc(QJsonDocument::fromJson(this->data_));
if (jsonDoc.isNull())
{
return QJsonArray{};
}
return jsonDoc.array();
}
rapidjson::Document NetworkResult::parseRapidJson() const
{
2018-07-14 14:24:18 +02:00
rapidjson::Document ret(rapidjson::kObjectType);
2018-08-06 21:17:03 +02:00
rapidjson::ParseResult result =
ret.Parse(this->data_.data(), this->data_.length());
2018-10-21 13:43:02 +02:00
if (result.Code() != rapidjson::kParseErrorNone)
{
2018-08-11 14:20:53 +02:00
log("JSON parse error: {} ({})",
2018-08-06 21:17:03 +02:00
rapidjson::GetParseError_En(result.Code()), result.Offset());
return ret;
}
return ret;
}
2018-08-02 14:23:27 +02:00
const QByteArray &NetworkResult::getData() const
{
return this->data_;
}
} // namespace chatterino