diff --git a/srcs/JsonArray.cpp b/srcs/JsonArray.cpp index 7336bce5..58f29963 100644 --- a/srcs/JsonArray.cpp +++ b/srcs/JsonArray.cpp @@ -1,2 +1,14 @@ #include "JsonArray.h" +#include "JsonValue.h" + +JsonValue JsonArray::operator[](int index) const +{ + for (JsonNodeIterator it = beginChildren(); it != endChildren(); ++it) + { + if (!index) return JsonValue(*it); + index--; + } + + return JsonValue(); +} \ No newline at end of file diff --git a/srcs/JsonArray.h b/srcs/JsonArray.h index 36d91796..a5c65cd0 100644 --- a/srcs/JsonArray.h +++ b/srcs/JsonArray.h @@ -14,12 +14,18 @@ public: { } - // JsonValue operator[](int index); + JsonValue operator[](int index) const; template void add(T value) { - addChild(createNode(JSON_UNDEFINED)); + JsonNode* node = createNode(JSON_UNDEFINED); + if (!node) return; + + JsonValue jsonValue(node); + jsonValue = value; + + addChild(node); } }; diff --git a/srcs/JsonValue.h b/srcs/JsonValue.h index f668e3f4..d34a9384 100644 --- a/srcs/JsonValue.h +++ b/srcs/JsonValue.h @@ -1,5 +1,6 @@ #pragma once +class JsonObject; struct JsonNode; class JsonValue diff --git a/tests/JsonArray_Container_Tests.cpp b/tests/JsonArray_Container_Tests.cpp index 99b45c73..d2e67330 100644 --- a/tests/JsonArray_Container_Tests.cpp +++ b/tests/JsonArray_Container_Tests.cpp @@ -27,7 +27,7 @@ TEST_F(JsonArray_Container_Tests, Grow_WhenValuesAreAdded) array.add("world"); EXPECT_EQ(2, array.size()); } -/* + TEST_F(JsonArray_Container_Tests, CanStoreIntegers) { array.add(123); @@ -36,7 +36,7 @@ TEST_F(JsonArray_Container_Tests, CanStoreIntegers) EXPECT_EQ(123, (int) array[0]); EXPECT_EQ(456, (int) array[1]); } - +/* TEST_F(JsonArray_Container_Tests, CanStoreDoubles) { array.add(123.45);