mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-20 14:02:24 +02:00
Test JsonArray serialization
This commit is contained in:
@ -11,6 +11,9 @@ size_t JsonNodeSerializer::serialize(const JsonNode* node)
|
|||||||
|
|
||||||
switch (node->type)
|
switch (node->type)
|
||||||
{
|
{
|
||||||
|
case JSON_ARRAY:
|
||||||
|
return serializeArray(node);
|
||||||
|
|
||||||
case JSON_OBJECT:
|
case JSON_OBJECT:
|
||||||
return serializeObject(node);
|
return serializeObject(node);
|
||||||
|
|
||||||
@ -35,6 +38,29 @@ size_t JsonNodeSerializer::serialize(const JsonNode* node)
|
|||||||
return 0;
|
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 JsonNodeSerializer::serializeObject(const JsonNode* node)
|
||||||
{
|
{
|
||||||
size_t n = 0;
|
size_t n = 0;
|
||||||
|
@ -16,6 +16,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
Print& _sink;
|
Print& _sink;
|
||||||
|
|
||||||
|
size_t serializeArray(const JsonNode* node);
|
||||||
size_t serializeObject(const JsonNode* node);
|
size_t serializeObject(const JsonNode* node);
|
||||||
size_t serializeKeyValue(const JsonNode* node);
|
size_t serializeKeyValue(const JsonNode* node);
|
||||||
};
|
};
|
||||||
|
@ -8,9 +8,12 @@
|
|||||||
#include <JsonObject.h>
|
#include <JsonObject.h>
|
||||||
#include <StaticJsonBuffer.h>
|
#include <StaticJsonBuffer.h>
|
||||||
|
|
||||||
class JsonArray_Serialization_Tests : testing::Test
|
class JsonArray_Serialization_Tests : public testing::Test
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
JsonArray array;
|
||||||
|
StaticJsonBuffer<3> json;
|
||||||
|
|
||||||
virtual void SetUp()
|
virtual void SetUp()
|
||||||
{
|
{
|
||||||
array = json.createArray();
|
array = json.createArray();
|
||||||
@ -24,11 +27,9 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
JsonArray array;
|
|
||||||
char buffer[256];
|
char buffer[256];
|
||||||
StaticJsonBuffer<32> json;
|
|
||||||
};
|
};
|
||||||
/*
|
|
||||||
TEST_F(JsonArray_Serialization_Tests, Empty)
|
TEST_F(JsonArray_Serialization_Tests, Empty)
|
||||||
{
|
{
|
||||||
outputMustBe("[]");
|
outputMustBe("[]");
|
||||||
@ -73,7 +74,7 @@ TEST_F(JsonArray_Serialization_Tests, OneDoubleDefaultDigits)
|
|||||||
|
|
||||||
TEST_F(JsonArray_Serialization_Tests, OneDoubleFourDigits)
|
TEST_F(JsonArray_Serialization_Tests, OneDoubleFourDigits)
|
||||||
{
|
{
|
||||||
array.add<4>(3.14159265358979323846);
|
array.add(3.14159265358979323846, 4);
|
||||||
outputMustBe("[3.1416]");
|
outputMustBe("[3.1416]");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,7 +135,7 @@ TEST_F(JsonArray_Serialization_Tests, OneBooleanOverCapacity)
|
|||||||
|
|
||||||
TEST_F(JsonArray_Serialization_Tests, OneEmptyNestedArray)
|
TEST_F(JsonArray_Serialization_Tests, OneEmptyNestedArray)
|
||||||
{
|
{
|
||||||
JsonArray<1> nestedArray;
|
JsonArray nestedArray = json.createArray();
|
||||||
|
|
||||||
array.add(nestedArray);
|
array.add(nestedArray);
|
||||||
|
|
||||||
@ -143,20 +144,9 @@ TEST_F(JsonArray_Serialization_Tests, OneEmptyNestedArray)
|
|||||||
|
|
||||||
TEST_F(JsonArray_Serialization_Tests, OneEmptyNestedHash)
|
TEST_F(JsonArray_Serialization_Tests, OneEmptyNestedHash)
|
||||||
{
|
{
|
||||||
JsonObject<1> nestedObject;
|
JsonObject nestedObject = json.createObject();
|
||||||
|
|
||||||
array.add(nestedObject);
|
array.add(nestedObject);
|
||||||
|
|
||||||
outputMustBe("[{}]");
|
outputMustBe("[{}]");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonArray_Serialization_Tests, OneNestedArrayWithOneInteger)
|
|
||||||
{
|
|
||||||
JsonArray<1> nestedArray;
|
|
||||||
nestedArray.add(1);
|
|
||||||
|
|
||||||
array.add(nestedArray);
|
|
||||||
|
|
||||||
outputMustBe("[[1]]");
|
|
||||||
}
|
|
||||||
*/
|
|
Reference in New Issue
Block a user