Cutelyst  2.5.0
Public Types | Public Member Functions | List of all members
Cutelyst::ViewJson Class Reference

JSON view for your data. More...

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

Inheritance diagram for Cutelyst::ViewJson:
Inheritance graph

Public Types

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

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
- 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)

Additional Inherited Members

- Protected Member Functions inherited from Cutelyst::Component
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)

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

◆ ExposeMode

This value defines which kind of exposition was defined

Definition at line 57 of file viewjson.h.

◆ JsonFormat

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


The output will be indented


The output will be compact saving space

Definition at line 39 of file viewjson.h.

Constructor & Destructor Documentation

◆ ViewJson()

ViewJson::ViewJson ( QObject *  parent,
const QString &  name = QString() 

Main constructor

Definition at line 34 of file viewjson.cpp.

Member Function Documentation

◆ exposeStashMode()

ViewJson::ExposeMode ViewJson::exposeStashMode ( ) const

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

Definition at line 70 of file viewjson.cpp.

◆ outputFormat()

ViewJson::JsonFormat ViewJson::outputFormat ( ) const

Returns the output format of JSON, defaults to Compact

Definition at line 45 of file viewjson.cpp.

References Compact, and Indented.

◆ render()

QByteArray ViewJson::render ( Context c) const

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 109 of file viewjson.cpp.

References Cutelyst::Context::response(), Cutelyst::Response::setContentType(), Cutelyst::Response::setHeader(), and Cutelyst::Context::stash().

◆ setExposeStash() [1/3]

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 76 of file viewjson.cpp.

◆ setExposeStash() [2/3]

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 83 of file viewjson.cpp.

◆ setExposeStash() [3/3]

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 90 of file viewjson.cpp.

◆ setOutputFormat()

void ViewJson::setOutputFormat ( JsonFormat  format)

Defines the output format of JSON

Definition at line 58 of file viewjson.cpp.

References Compact, and Indented.

◆ setXJsonHeader()

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 97 of file viewjson.cpp.

◆ xJsonHeader()

bool ViewJson::xJsonHeader ( ) const

Returns true if the X-JSON header should be sent

Definition at line 103 of file viewjson.cpp.