Commit 959866b8 authored by Wouter van Oortmerssen's avatar Wouter van Oortmerssen

Merge pull request #3776 from ncpenke/fix-bug-skipping-unknown-fields

Fix bug skipping unknown fields
parents 9a76ce8a cbab2667
...@@ -1557,8 +1557,12 @@ CheckedError Parser::SkipJsonObject() { ...@@ -1557,8 +1557,12 @@ CheckedError Parser::SkipJsonObject() {
for (;;) { for (;;) {
if ((!opts.strict_json || !fieldn) && Is('}')) break; if ((!opts.strict_json || !fieldn) && Is('}')) break;
if (!Is(kTokenStringConstant)) if (!Is(kTokenStringConstant)) {
EXPECT(opts.strict_json ? kTokenStringConstant : kTokenIdentifier); EXPECT(opts.strict_json ? kTokenStringConstant : kTokenIdentifier);
}
else {
NEXT();
}
EXPECT(':'); EXPECT(':');
ECHECK(SkipAnyJsonValue()); ECHECK(SkipAnyJsonValue());
......
...@@ -830,10 +830,13 @@ void UnknownFieldsTest() { ...@@ -830,10 +830,13 @@ void UnknownFieldsTest() {
TEST_EQ(parser.Parse("table T { str:string; i:int;}" TEST_EQ(parser.Parse("table T { str:string; i:int;}"
"root_type T;" "root_type T;"
"{ str:\"test\"," "{ str:\"test\","
"unknown_string:\"test\","
"\"unknown_string\":\"test\","
"unknown_int:10," "unknown_int:10,"
"unknown_float:1.0," "unknown_float:1.0,"
"unknown_array: [ 1, 2, 3, 4]," "unknown_array: [ 1, 2, 3, 4],"
"unknown_object: { i: 10 }," "unknown_object: { i: 10 },"
"\"unknown_object\": { \"i\": 10 },"
"i:10}"), true); "i:10}"), true);
std::string jsongen; std::string jsongen;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment