diff --git a/include/json/reader.h b/include/json/reader.h index eb4ef97..c0dd137 100644 --- a/include/json/reader.h +++ b/include/json/reader.h @@ -298,12 +298,16 @@ public: /** Configuration of this builder. These are case-sensitive. Available settings (case-sensitive): - - "collectComments": false or true (default=true) - - TODO: other features ... + - "collectComments": false or true + - "allowComments" + - "strictRoot" + - "allowDroppedNullPlaceholders" + - "allowNumericKeys" + You can examine 'settings_` yourself to see the defaults. You can also write and read them just like any JSON Value. - \sa setDefaults(Json::Value*) + \sa setDefaults() */ Json::Value settings_; @@ -312,7 +316,7 @@ public: virtual CharReader* newCharReader() const; - /** \return true if 'settings' are illegal and consistent; + /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. */ bool validate(Json::Value* invalid) const; diff --git a/include/json/writer.h b/include/json/writer.h index 2e074c1..7dad7f6 100644 --- a/include/json/writer.h +++ b/include/json/writer.h @@ -99,11 +99,13 @@ public: // without a major version bump. /** Configuration of this builder. Available settings (case-sensitive): - - "commentStyle": "None", "Some", or "All" (default="All") - - "indentation": (default="\t") - But don't trust these docs. You can examine 'settings_` yourself + - "commentStyle": "None", "Some", or "All" + - "indentation": "" + + You can examine 'settings_` yourself to see the defaults. You can also write and read them just like any JSON Value. + \sa setDefaults() */ Json::Value settings_; @@ -115,7 +117,7 @@ public: */ virtual StreamWriter* newStreamWriter(std::ostream* sout) const; - /** \return true if 'settings' are illegal and consistent; + /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. */ bool validate(Json::Value* invalid) const; diff --git a/src/lib_json/json_reader.cpp b/src/lib_json/json_reader.cpp index 4a3ffda..8038c11 100644 --- a/src/lib_json/json_reader.cpp +++ b/src/lib_json/json_reader.cpp @@ -925,13 +925,20 @@ CharReader* CharReaderBuilder::newCharReader() const bool collectComments = settings_["collectComments"].asBool(); Features features = Features::all(); - // TODO: Fill in features. + features.allowComments_ = settings_["allowComments"].asBool(); + features.strictRoot_ = settings_["strictRoot"].asBool(); + features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool(); + features.allowNumericKeys_ = settings_["allowNumericKeys"].asBool(); return new OldReader(collectComments, features); } static void getValidReaderKeys(std::set* valid_keys) { valid_keys->clear(); valid_keys->insert("collectComments"); + valid_keys->insert("allowComments"); + valid_keys->insert("strictRoot"); + valid_keys->insert("allowDroppedNullPlaceholders"); + valid_keys->insert("allowNumericKeys"); } bool CharReaderBuilder::validate(Json::Value* invalid) const {