Library: Data
Package: DataCore
Header: Poco/Data/JSONRowFormatter.h
Description
Class for JSON formatting of data rows.
Formatter can be configured to operate in four modes (and certain combinations thereof) :
- small (condensed mode, only array of values)
Example: { [["Simpson", "Bart", "Springfield", 12], ["Simpson", "Lisa", "Springfield", 10]] } row count (total row count provided) Example: { "count":2, [["Simpson", "Bart", "Springfield", 12], ["Simpson", "Lisa", "Springfield", 10]] } column names (column names provided as a string array) Example: { "names":["LastName", "FirstName", "Address", "Age"], [["Simpson", "Bart", "Springfield", 12], ["Simpson", "Lisa", "Springfield", 10]] } full (total row count, column names provided in every row of data) Example: { "count":2, [ {"LastName": "Simpson", "FirstName": "Bart", "Address": "Springfield", "Age": 12}, {"LastName": "Simpson", "FirstName": "Lisa", "Address": "Springfield", "Age": 10} ] }
Total row count will be specified by the Poco::SQLRecordSet. Note, however, that this is not possible to do accurately in case of result set paging. For those cases, there is setTotalRowCount() member function, which allows to explicitly set the total row count. If the total row count is preset on the formatter, the Data framework shall not interfere.
Inheritance
Direct Base Classes: RowFormatter
All Base Classes: RowFormatter
Member Summary
Member Functions: formatNames, formatValues, isFull, isSmall, printColumnNames, printRowCount, setJSONMode
Inherited Functions: adjustPrefix, formatNames, formatValues, getMode, getTotalRowCount, postfix, prefix, reset, rowCount, setMode, setPostfix, setPrefix, setTotalRowCount, toString
Constructors
JSONRowFormatter
JSONRowFormatter(
int mode = (JSON_FMT_MODE_COLUMN_NAMES | JSON_FMT_MODE_SMALL)
);
Creates a new JSONRowFormatter.
Destructor
~JSONRowFormatter
~JSONRowFormatter();
Destroys the JSONRowFormatter.
Member Functions
formatNames
std::string & formatNames(
const NameVecPtr pNames,
std::string & formattedNames
);
Formats names.
See also: Poco::Data::RowFormatter::formatNames()
formatValues
std::string & formatValues(
const ValueVec & vals,
std::string & formattedValues
);
See also: Poco::Data::RowFormatter::formatValues()
isFull
bool isFull() const;
Returns true if full mode formatting is enabled, false otherwise.
isSmall
bool isSmall() const;
Returns true if compact mode formatting is enabled, false otherwise.
printColumnNames
bool printColumnNames() const;
Returns true if column names printing is enabled, false otherwise.
printRowCount
bool printRowCount() const;
Returns true if row count printing is enabled, false otherwise.
setJSONMode
void setJSONMode(
int mode
);
Sets the mode. Valid mode values are:
JSON_FMT_MODE_SMALL JSON_FMT_MODE_ROW_COUNT JSON_FMT_MODE_COLUMN_NAMES JSON_FMT_MODE_FULL
Variables
JSON_FMT_MODE_COLUMN_NAMES
static const int JSON_FMT_MODE_COLUMN_NAMES = 4;
JSON_FMT_MODE_FULL
static const int JSON_FMT_MODE_FULL = 8;
JSON_FMT_MODE_ROW_COUNT
static const int JSON_FMT_MODE_ROW_COUNT = 2;
JSON_FMT_MODE_SMALL
static const int JSON_FMT_MODE_SMALL = 1;