Skip to content

Commit 8ada255

Browse files
committed
Introduce CharReaderBuilder::ecma404Mode
1 parent 5defb4e commit 8ada255

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Diff for: include/json/reader.h

+6
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,12 @@ class JSON_API CharReaderBuilder : public CharReader::Factory {
359359
* \snippet src/lib_json/json_reader.cpp CharReaderBuilderStrictMode
360360
*/
361361
static void strictMode(Json::Value* settings);
362+
/** ECMA-404 mode.
363+
* \pre 'settings' != NULL (but Json::null is fine)
364+
* \remark Defaults:
365+
* \snippet src/lib_json/json_reader.cpp CharReaderBuilderECMA404Mode
366+
*/
367+
static void ecma404Mode(Json::Value* settings);
362368
};
363369

364370
/** Consume entire stream and use its begin/end.

Diff for: src/lib_json/json_reader.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -1963,6 +1963,22 @@ void CharReaderBuilder::setDefaults(Json::Value* settings) {
19631963
(*settings)["skipBom"] = true;
19641964
//! [CharReaderBuilderDefaults]
19651965
}
1966+
// static
1967+
void CharReaderBuilder::ecma404Mode(Json::Value* settings) {
1968+
//! [CharReaderBuilderECMA404Mode]
1969+
(*settings)["allowComments"] = false;
1970+
(*settings)["allowTrailingCommas"] = false;
1971+
(*settings)["strictRoot"] = false;
1972+
(*settings)["allowDroppedNullPlaceholders"] = false;
1973+
(*settings)["allowNumericKeys"] = false;
1974+
(*settings)["allowSingleQuotes"] = false;
1975+
(*settings)["stackLimit"] = 1000;
1976+
(*settings)["failIfExtra"] = true;
1977+
(*settings)["rejectDupKeys"] = false;
1978+
(*settings)["allowSpecialFloats"] = false;
1979+
(*settings)["skipBom"] = false;
1980+
//! [CharReaderBuilderECMA404Mode]
1981+
}
19661982

19671983
//////////////////////////////////
19681984
// global functions

0 commit comments

Comments
 (0)