Cutelyst  2.14.2
Public Types | Public Member Functions | List of all members
Cutelyst::ViewJson Class Referencefinal

JSON view for your data. More...

#include <Cutelyst/Plugins/JSON/viewjson.h>

Inheritance diagram for Cutelyst::ViewJson:
Inheritance graph
[legend]

Public Types

enum  ExposeMode { All, String, StringList, RegularExpression }
 
enum  JsonFormat { Indented, Compact }
 
- Public Types inherited from Cutelyst::Component
enum  Modifier {
  None, OnlyExecute, BeforeExecute, AroundExecute,
  AfterExecute
}
 

Public Member Functions

 ViewJson (QObject *parent, const QString &name=QString())
 
ExposeMode exposeStashMode () const
 
JsonFormat outputFormat () const
 
QByteArray render (Context *c) const final
 
void setExposeStash (const QString &key)
 
void setExposeStash (const QStringList &keys)
 
void setExposeStash (const QRegularExpression &re)
 
void setOutputFormat (JsonFormat format)
 
void setXJsonHeader (bool enable)
 
bool xJsonHeader () const
 
- Public Member Functions inherited from Cutelyst::View
 View (QObject *parent, const QString &name)
 
virtual Modifiers modifiers () const override
 
void setMinimalSizeToDeflate (qint32 minSize=-1)
 
- Public Member Functions inherited from Cutelyst::Component
 Component (QObject *parent=nullptr)
 
bool execute (Context *c)
 
virtual bool init (Application *application, const QVariantHash &args)
 
QString name () const
 
QString reverse () const
 
void setName (const QString &name)
 
void setReverse (const QString &reverse)
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectList & children () const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const
 
bool disconnect (const QObject *receiver, const char *method) const
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArraydynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const
 
bool inherits (const char *className) const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const
 
bool isWindowType () const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const
 
QVariant property (const char *name) const
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval, Qt::TimerType timerType)
 
QThreadthread () const
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Protected Member Functions inherited from Cutelyst::View
 View (ViewPrivate *d, QObject *parent, const QString &name)
 A derived class using pimpl should call this constructor, to reduce the number of memory allocations.
 
- Protected Member Functions inherited from Cutelyst::Component
 Component (ComponentPrivate *d, QObject *parent=nullptr)
 A derived class using pimpl should call this constructor, to reduce the number of memory allocations.
 
virtual bool afterExecute (Context *c)
 
void applyRoles (const QStack< Component * > &roles)
 
virtual bool aroundExecute (Context *c, QStack< Component * > stack)
 
virtual bool beforeExecute (Context *c)
 
virtual bool dispatcherReady (const Dispatcher *dispatch, Controller *controller)
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const
 
int receivers (const char *signal) const
 
QObjectsender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Cutelyst::ViewJSON is a Cutelyst View handler that returns stash data in JSON format.

Definition at line 27 of file viewjson.h.

Member Enumeration Documentation

This value defines which kind of exposition was defined

Definition at line 56 of file viewjson.h.

This value defines the format of the JSON byte array produced when rendering the view

Enumerator
Indented 

The output will be indented

Compact 

The output will be compact saving space

Definition at line 38 of file viewjson.h.

Constructor & Destructor Documentation

ViewJson::ViewJson ( QObject parent,
const QString name = QString() 
)
explicit

Main constructor

Definition at line 34 of file viewjson.cpp.

Member Function Documentation

ViewJson::ExposeMode ViewJson::exposeStashMode ( ) const

Returns the expose mode of the stash keys, defaults to everything (All)

Definition at line 64 of file viewjson.cpp.

ViewJson::JsonFormat ViewJson::outputFormat ( ) const

Returns the output format of JSON, defaults to Compact

Definition at line 39 of file viewjson.cpp.

References Compact, and Indented.

QByteArray ViewJson::render ( Context c) const
finalvirtual

All subclasses must reimplement this when doing it's rendering. If an error (c->error()) is not set c->response()->body() is defined with the returned value, this is useful if the view is not meant to be used as a body.

Implements Cutelyst::View.

Definition at line 103 of file viewjson.cpp.

References QJsonValue::fromVariant(), QJsonObject::fromVariantHash(), QRegularExpressionMatch::hasMatch(), QJsonObject::insert(), QRegularExpression::match(), Cutelyst::Context::response(), Cutelyst::Response::setContentType(), Cutelyst::Response::setHeader(), Cutelyst::Context::stash(), and QJsonDocument::toJson().

void ViewJson::setExposeStash ( const QString key)

Specify which stash key is exposed as a JSON response, this will change exposeStashMode() to ViewJson::String

Definition at line 70 of file viewjson.cpp.

void ViewJson::setExposeStash ( const QStringList keys)

Specify which stash keys are exposed as a JSON response, this will change exposeStashMode() to ViewJson::StringList

Definition at line 77 of file viewjson.cpp.

void ViewJson::setExposeStash ( const QRegularExpression re)

Specify which stash keys are exposed as a JSON response, this will change exposeStashMode() to ViewJson::RegularExpression

Definition at line 84 of file viewjson.cpp.

void ViewJson::setOutputFormat ( JsonFormat  format)

Defines the output format of JSON

Definition at line 52 of file viewjson.cpp.

References Compact, and Indented.

void ViewJson::setXJsonHeader ( bool  enable)

By default this plugin does NOT sets X-JSON header if the requested client is a Prototype.js with X-JSON support. By setting true, you can opt-out this behavior so that you do not need to do eval() by your own.

Definition at line 91 of file viewjson.cpp.

bool ViewJson::xJsonHeader ( ) const

Returns true if the X-JSON header should be sent

Definition at line 97 of file viewjson.cpp.