LeechCraft 0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
parsejson.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#pragma once
10
11#include <QByteArray>
12#include <QVariant>
13#include <QIODevice>
14#include <QtDebug>
15#include <QJsonDocument>
16
17namespace LC
18{
19namespace Util
20{
31 inline QVariant ParseJson (const QByteArray& bytes, const char *context)
32 {
33 QJsonParseError error;
34 const auto& result = QJsonDocument::fromJson (bytes, &error).toVariant ();
35 if (error.error != QJsonParseError::NoError)
36 {
37 qWarning () << context
38 << "cannot parse"
39 << error.errorString ();
40 return {};
41 }
42 return result;
43 }
44
56 inline QVariant ParseJson (QIODevice *device, const char *context)
57 {
58 return ParseJson (device->readAll (), context);
59 }
60}
61}
Container< T > Filter(const Container< T > &c, F f)
Definition prelude.h:118
QVariant ParseJson(const QByteArray &bytes, const char *context)
Parses JSON content in the given bytearray.
Definition parsejson.h:31
Definition constants.h:15