mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-16 20:12:16 +02:00
Test that JsonArray can contain inner arrays
This commit is contained in:
@ -48,3 +48,12 @@ void JsonArray::add(long value)
|
|||||||
node->content.asInteger = value;
|
node->content.asInteger = value;
|
||||||
addChild(node);
|
addChild(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void JsonArray::add(JsonContainer& innerContainer)
|
||||||
|
{
|
||||||
|
JsonNode* node = createNode(JSON_PROXY);
|
||||||
|
if (!node) return;
|
||||||
|
|
||||||
|
node->content.asProxy.target = innerContainer._node;
|
||||||
|
addChild(node);
|
||||||
|
}
|
@ -21,5 +21,6 @@ public:
|
|||||||
void add(double value, int decimals=2);
|
void add(double value, int decimals=2);
|
||||||
void add(int value) { add((long) value); }
|
void add(int value) { add((long) value); }
|
||||||
void add(long value);
|
void add(long value);
|
||||||
|
void add(JsonContainer& innerContainer);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,10 +6,12 @@
|
|||||||
|
|
||||||
struct JsonNode;
|
struct JsonNode;
|
||||||
class JsonValue;
|
class JsonValue;
|
||||||
|
class JsonArray;
|
||||||
|
|
||||||
class JsonContainer : public Printable
|
class JsonContainer : public Printable
|
||||||
{
|
{
|
||||||
friend JsonValue;
|
friend JsonValue;
|
||||||
|
friend JsonArray;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
JsonContainer()
|
JsonContainer()
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "JsonObject.h"
|
|
||||||
|
|
||||||
#include "JsonValue.h"
|
#include "JsonValue.h"
|
||||||
|
|
||||||
|
#include "JsonArray.h"
|
||||||
|
#include "JsonObject.h"
|
||||||
#include "Internals/JsonNode.h"
|
#include "Internals/JsonNode.h"
|
||||||
|
|
||||||
void JsonValue::operator=(bool value)
|
void JsonValue::operator=(bool value)
|
||||||
@ -40,7 +41,7 @@ void JsonValue::operator=(int value)
|
|||||||
_node->content.asInteger = value;
|
_node->content.asInteger = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void JsonValue::operator=(const JsonObject& object)
|
void JsonValue::operator=(const JsonContainer& object)
|
||||||
{
|
{
|
||||||
setAsProxyTo(object._node);
|
setAsProxyTo(object._node);
|
||||||
}
|
}
|
||||||
@ -72,6 +73,7 @@ void JsonValue::operator=(JsonValue const& value)
|
|||||||
case JSON_ARRAY:
|
case JSON_ARRAY:
|
||||||
case JSON_PROXY:
|
case JSON_PROXY:
|
||||||
setAsProxyTo(value._node);
|
setAsProxyTo(value._node);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
*_node = *value._node;
|
*_node = *value._node;
|
||||||
@ -115,6 +117,11 @@ JsonValue::operator int() const
|
|||||||
return node->content.asInteger;
|
return node->content.asInteger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JsonValue::operator JsonArray() const
|
||||||
|
{
|
||||||
|
return JsonArray(getActualNode());
|
||||||
|
}
|
||||||
|
|
||||||
JsonValue::operator JsonObject() const
|
JsonValue::operator JsonObject() const
|
||||||
{
|
{
|
||||||
return JsonObject(getActualNode());
|
return JsonObject(getActualNode());
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
class JsonArray;
|
||||||
|
class JsonContainer;
|
||||||
class JsonObject;
|
class JsonObject;
|
||||||
struct JsonNode;
|
struct JsonNode;
|
||||||
|
|
||||||
@ -21,13 +23,14 @@ public:
|
|||||||
void operator=(const char*);
|
void operator=(const char*);
|
||||||
void operator=(double);
|
void operator=(double);
|
||||||
void operator=(int);
|
void operator=(int);
|
||||||
void operator=(const JsonObject&);
|
void operator=(const JsonContainer&);
|
||||||
void operator=(const JsonValue&);
|
void operator=(const JsonValue&);
|
||||||
|
|
||||||
operator bool() const;
|
operator bool() const;
|
||||||
operator const char*() const;
|
operator const char*() const;
|
||||||
operator double() const;
|
operator double() const;
|
||||||
operator int() const;
|
operator int() const;
|
||||||
|
operator JsonArray() const;
|
||||||
operator JsonObject() const;
|
operator JsonObject() const;
|
||||||
|
|
||||||
void set(double value, int decimals);
|
void set(double value, int decimals);
|
||||||
|
@ -63,7 +63,7 @@ TEST_F(JsonArray_Container_Tests, CanStoreStrings)
|
|||||||
EXPECT_STREQ("h3110", (const char*) array[0]);
|
EXPECT_STREQ("h3110", (const char*) array[0]);
|
||||||
EXPECT_STREQ("w0r1d", (const char*) array[1]);
|
EXPECT_STREQ("w0r1d", (const char*) array[1]);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
TEST_F(JsonArray_Container_Tests, CanStoreInnerArrays)
|
TEST_F(JsonArray_Container_Tests, CanStoreInnerArrays)
|
||||||
{
|
{
|
||||||
JsonArray innerarray1 = json.createArray();
|
JsonArray innerarray1 = json.createArray();
|
||||||
@ -74,4 +74,4 @@ TEST_F(JsonArray_Container_Tests, CanStoreInnerArrays)
|
|||||||
|
|
||||||
EXPECT_EQ(innerarray1, (JsonArray) array[0]);
|
EXPECT_EQ(innerarray1, (JsonArray) array[0]);
|
||||||
EXPECT_EQ(innerarray2, (JsonArray) array[1]);
|
EXPECT_EQ(innerarray2, (JsonArray) array[1]);
|
||||||
}*/
|
}
|
Reference in New Issue
Block a user