forked from bblanchon/ArduinoJson
Parse empty object
This commit is contained in:
@ -165,4 +165,5 @@ void JsonNode::duplicate(JsonNode* other)
|
||||
{
|
||||
*this = *other;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,16 @@ bool JsonParser::isArrayStop()
|
||||
return *_ptr == ']';
|
||||
}
|
||||
|
||||
bool JsonParser::isObjectStart()
|
||||
{
|
||||
return *_ptr == '{';
|
||||
}
|
||||
|
||||
bool JsonParser::isObjectStop()
|
||||
{
|
||||
return *_ptr == '}';
|
||||
}
|
||||
|
||||
bool JsonParser::isBoolean()
|
||||
{
|
||||
return *_ptr == 't' || *_ptr == 'f';
|
||||
@ -104,13 +114,15 @@ JsonNode* JsonParser::parseAnything()
|
||||
if (isNull())
|
||||
return parseNull();
|
||||
|
||||
if (isObjectStart())
|
||||
return parseObject();
|
||||
|
||||
return parseString();
|
||||
}
|
||||
|
||||
JsonNode* JsonParser::parseArray()
|
||||
{
|
||||
JsonNode* node = _buffer->createNode();
|
||||
node->setAsArray(_buffer);
|
||||
JsonNode* node = _buffer->createArrayNode();
|
||||
|
||||
skipOneChar(); // skip the '['
|
||||
skipSpaces();
|
||||
@ -137,6 +149,12 @@ JsonNode* JsonParser::parseArray()
|
||||
}
|
||||
}
|
||||
|
||||
JsonNode* JsonParser::parseObject()
|
||||
{
|
||||
_ptr+=2;
|
||||
return _buffer->createObjectNode();
|
||||
}
|
||||
|
||||
JsonNode *JsonParser::parseBoolean()
|
||||
{
|
||||
bool value = *_ptr == 't';
|
||||
@ -168,8 +186,7 @@ JsonNode* JsonParser::parseLong()
|
||||
|
||||
JsonNode* JsonParser::parseNull()
|
||||
{
|
||||
_ptr += 4;
|
||||
// 4 = strlen("null")
|
||||
_ptr += 4; // strlen("null")
|
||||
|
||||
return _buffer->createStringNode(0);
|
||||
}
|
||||
|
@ -28,6 +28,12 @@ JsonArray JsonBuffer::parseArray(char* json)
|
||||
return JsonArray(parser.parseAnything());
|
||||
}
|
||||
|
||||
JsonObject JsonBuffer::parseObject(char* json)
|
||||
{
|
||||
JsonParser parser(this, json);
|
||||
return JsonObject(parser.parseAnything());
|
||||
}
|
||||
|
||||
JsonValue JsonBuffer::parseValue(char* json)
|
||||
{
|
||||
JsonParser parser(this, json);
|
||||
|
Reference in New Issue
Block a user