defuze.me
Client
|
00001 /************************************************************************** 00002 ** defuze.me Epitech Innovative Project 00003 ** 00004 ** Copyright 2010 00005 ** Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard 00006 ** Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier 00007 ** 00008 ** All rights reserved. 00009 **************************************************************************/ 00010 00011 namespace Network { 00012 class JsonParser; 00013 } 00014 00015 #ifndef JSONPARSER_HPP 00016 #define JSONPARSER_HPP 00017 00018 #include <QScriptEngine> 00019 #include <QScriptValueIterator> 00020 #include <QString> 00021 #include "parser.hpp" 00022 00023 namespace Network 00024 { 00028 class JsonParser : public Parser 00029 { 00030 public: 00031 JsonParser(); 00032 00033 QVariant parse(const QByteArray& data) const; 00034 QByteArray serialize(const QVariant& data) const; 00035 00036 static void test(); 00037 private: 00038 QVariant partialParse(const QScriptValue& value) const; 00039 QByteArray partialSerialize(const QVariant& value, const short spaces) const; 00040 00041 QByteArray join( const QList<QByteArray>& list, const QByteArray& sep) const; 00042 QString sanitizeString(const QString& input) const; 00043 QByteArray indent(const short spaces) const; 00044 }; 00045 } 00046 00047 #endif // JSONPARSER_HPP