json test

Embed: (wiki syntax)

« Back to documentation index

CharReaderBuilder Class Reference

Build a CharReader implementation. More...

#include <reader.h>

Inherits Json::CharReader::Factory.

Public Member Functions

bool validate (Json::Value *invalid) const
Valueoperator[] (JSONCPP_STRING key)
 A simple way to update a specific setting.

Static Public Member Functions

static void setDefaults (Json::Value *settings)
 Called by ctor, but you can use this to reset settings_.
static void strictMode (Json::Value *settings)
 Same as old Features::strictMode().

Data Fields

Json::Value settings_
 Configuration of this builder.

Detailed Description

Build a CharReader implementation.

Usage:

  using namespace Json;
  CharReaderBuilder builder;
  builder["collectComments"] = false;
  Value value;
  JSONCPP_STRING errs;
  bool ok = parseFromStream(builder, std::cin, &value, &errs);

Definition at line 298 of file reader.h.


Member Function Documentation

Value & operator[] ( JSONCPP_STRING  key )

A simple way to update a specific setting.

Definition at line 1999 of file json_reader.cpp.

void setDefaults ( Json::Value settings ) [static]

Called by ctor, but you can use this to reset settings_.

Precondition:
'settings' != NULL (but Json::null is fine)
Remarks:
Defaults: src/lib_json/json_reader.cpp CharReaderBuilderDefaults

[CharReaderBuilderDefaults]

[CharReaderBuilderDefaults]

Definition at line 2019 of file json_reader.cpp.

void strictMode ( Json::Value settings ) [static]

Same as old Features::strictMode().

Precondition:
'settings' != NULL (but Json::null is fine)
Remarks:
Defaults: src/lib_json/json_reader.cpp CharReaderBuilderStrictMode

[CharReaderBuilderStrictMode]

[CharReaderBuilderStrictMode]

Definition at line 2004 of file json_reader.cpp.

bool validate ( Json::Value invalid ) const
Returns:
true if 'settings' are legal and consistent; otherwise, indicate bad settings via 'invalid'.

Definition at line 1982 of file json_reader.cpp.


Field Documentation

Configuration of this builder.

These are case-sensitive. Available settings (case-sensitive):

  • `"collectComments": false or true`
    • true to collect comment and allow writing them back during serialization, false to discard comments. This parameter is ignored if allowComments is false.
  • `"allowComments": false or true`
    • true if comments are allowed.
  • `"strictRoot": false or true`
    • true if root must be either an array or an object value
  • `"allowDroppedNullPlaceholders": false or true`
  • `"allowNumericKeys": false or true`
    • true if numeric object keys are allowed.
  • `"allowSingleQuotes": false or true`
    • true if '' are allowed for strings (both keys and values)
  • `"stackLimit": integer`
    • Exceeding stackLimit (recursive depth of `readValue()`) will cause an exception.
    • This is a security issue (seg-faults caused by deeply nested JSON), so the default is low.
  • `"failIfExtra": false or true`
    • If true, `parse()` returns false when extra non-whitespace trails the JSON value in the input string.
  • `"rejectDupKeys": false or true`
    • If true, `parse()` returns false when a key is duplicated within an object.
  • `"allowSpecialFloats": false or true`
    • If true, special float values (NaNs and infinities) are allowed and their values are lossfree restorable.

You can examine 'settings_` yourself to see the defaults. You can also write and read them just like any JSON Value.

See also:
setDefaults()

Definition at line 338 of file reader.h.