mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-14 11:06:35 +02:00
Fixed parsing when opening brace/bracket is missing
This commit is contained in:
@ -74,9 +74,9 @@ void JsonParser::parseAnythingTo(JsonValue &destination) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
JsonArray &JsonParser::parseArray() {
|
JsonArray &JsonParser::parseArray() {
|
||||||
skip('[');
|
if (!skip('[')) return JsonArray::invalid(); // missing opening bracket
|
||||||
|
|
||||||
if (isEnd()) return JsonArray::invalid();
|
if (isEnd()) return JsonArray::invalid(); // end of stream
|
||||||
|
|
||||||
JsonArray &array = _buffer->createArray();
|
JsonArray &array = _buffer->createArray();
|
||||||
if (skip(']')) return array; // empty array
|
if (skip(']')) return array; // empty array
|
||||||
@ -127,7 +127,7 @@ void JsonParser::parseNullTo(JsonValue &destination) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
JsonObject &JsonParser::parseObject() {
|
JsonObject &JsonParser::parseObject() {
|
||||||
skip('{');
|
if (!skip('{')) return JsonObject::invalid(); // missing opening brace
|
||||||
|
|
||||||
if (isEnd()) return JsonObject::invalid(); // premature ending
|
if (isEnd()) return JsonObject::invalid(); // premature ending
|
||||||
|
|
||||||
|
@ -58,9 +58,13 @@ TEST_F(JsonParser_Array_Tests, EmptyArray) {
|
|||||||
sizeMustBe(0);
|
sizeMustBe(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(JsonParser_Array_Tests, MissingOpeningBracket) {
|
||||||
|
whenInputIs("]");
|
||||||
|
parseMustFail();
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Array_Tests, ArrayWithNoEnd) {
|
TEST_F(JsonParser_Array_Tests, ArrayWithNoEnd) {
|
||||||
whenInputIs("[");
|
whenInputIs("[");
|
||||||
|
|
||||||
parseMustFail();
|
parseMustFail();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,22 +45,24 @@ TEST_F(JsonParser_Object_Test, EmptyObject) {
|
|||||||
sizeMustBe(0);
|
sizeMustBe(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(JsonParser_Object_Test, MissingOpeningBrace) {
|
||||||
|
whenInputIs("}");
|
||||||
|
parseMustFail();
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Object_Test, MissingClosingBrace) {
|
TEST_F(JsonParser_Object_Test, MissingClosingBrace) {
|
||||||
whenInputIs("{");
|
whenInputIs("{");
|
||||||
parseMustFail();
|
parseMustFail();
|
||||||
sizeMustBe(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Object_Test, MissingColonAndValue) {
|
TEST_F(JsonParser_Object_Test, MissingColonAndValue) {
|
||||||
whenInputIs("{\"key\"}");
|
whenInputIs("{\"key\"}");
|
||||||
parseMustFail();
|
parseMustFail();
|
||||||
sizeMustBe(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Object_Test, MissingQuotesAndColonAndValue) {
|
TEST_F(JsonParser_Object_Test, MissingQuotesAndColonAndValue) {
|
||||||
whenInputIs("{key}");
|
whenInputIs("{key}");
|
||||||
parseMustFail();
|
parseMustFail();
|
||||||
sizeMustBe(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Object_Test, OneString) {
|
TEST_F(JsonParser_Object_Test, OneString) {
|
||||||
|
Reference in New Issue
Block a user