Test JsonArray serialization

This commit is contained in:
Benoit Blanchon
2014-10-05 15:23:52 +02:00
parent 6330ab1271
commit 31c9ea9b28
3 changed files with 36 additions and 19 deletions

View File

@ -11,6 +11,9 @@ size_t JsonNodeSerializer::serialize(const JsonNode* node)
switch (node->type)
{
case JSON_ARRAY:
return serializeArray(node);
case JSON_OBJECT:
return serializeObject(node);
@ -35,6 +38,29 @@ size_t JsonNodeSerializer::serialize(const JsonNode* node)
return 0;
}
size_t JsonNodeSerializer::serializeArray(JsonNode const* node)
{
size_t n = 0;
n += _sink.write('[');
JsonNode* firstChild = node->content.asContainer.child;
for (JsonNode* child = firstChild; child; child = child->next)
{
n += serialize(child);
if (child->next)
{
n += _sink.write(',');
}
}
n += _sink.write(']');
return n;
}
size_t JsonNodeSerializer::serializeObject(const JsonNode* node)
{
size_t n = 0;

View File

@ -16,6 +16,7 @@ public:
private:
Print& _sink;
size_t serializeArray(const JsonNode* node);
size_t serializeObject(const JsonNode* node);
size_t serializeKeyValue(const JsonNode* node);
};