forked from bblanchon/ArduinoJson
Added JsonArrayIterator
This commit is contained in:
@ -3,16 +3,13 @@
|
||||
namespace ArduinoJson
|
||||
{
|
||||
class JsonBuffer;
|
||||
|
||||
|
||||
namespace Internals
|
||||
{
|
||||
class JsonWriter;
|
||||
class JsonNodeIterator;
|
||||
|
||||
class JsonNode
|
||||
{
|
||||
friend class JsonNodeIterator;
|
||||
|
||||
enum JsonNodeType
|
||||
{
|
||||
JSON_UNDEFINED,
|
||||
@ -63,6 +60,8 @@ namespace ArduinoJson
|
||||
|
||||
}
|
||||
|
||||
JsonNode* next;
|
||||
|
||||
void writeTo(JsonWriter&); // TODO: <- move in JsonNodeSerializer
|
||||
|
||||
void setAsArray(JsonBuffer* buffer)
|
||||
@ -175,7 +174,6 @@ namespace ArduinoJson
|
||||
|
||||
private:
|
||||
JsonNodeType type;
|
||||
JsonNode* next;
|
||||
JsonNodeContent content;
|
||||
|
||||
inline void writeArrayTo(JsonWriter&);// TODO: <- move in JsonNodeSerializer
|
||||
|
@ -6,6 +6,7 @@ namespace ArduinoJson
|
||||
{
|
||||
namespace Internals
|
||||
{
|
||||
// TODO: replace by JsonArrayIterator and JsonObjectIterator
|
||||
class JsonNodeIterator
|
||||
{
|
||||
public:
|
||||
|
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "JsonContainer.hpp"
|
||||
#include "JsonArrayIterator.hpp"
|
||||
|
||||
namespace ArduinoJson
|
||||
{
|
||||
@ -32,5 +33,12 @@ namespace ArduinoJson
|
||||
{
|
||||
return _node && _node->isArray();
|
||||
}
|
||||
|
||||
JsonArrayIterator begin();
|
||||
|
||||
JsonArrayIterator end()
|
||||
{
|
||||
return JsonArrayIterator(0);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
42
include/ArduinoJson/JsonArrayIterator.hpp
Normal file
42
include/ArduinoJson/JsonArrayIterator.hpp
Normal file
@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include "ArduinoJson/JsonValue.hpp"
|
||||
|
||||
namespace ArduinoJson
|
||||
{
|
||||
class JsonArray;
|
||||
|
||||
class JsonArrayIterator
|
||||
{
|
||||
friend class JsonArray;
|
||||
|
||||
public:
|
||||
explicit JsonArrayIterator(Internals::JsonNode* node)
|
||||
: _node(node)
|
||||
{
|
||||
}
|
||||
|
||||
void operator++()
|
||||
{
|
||||
_node = _node->next;
|
||||
}
|
||||
|
||||
JsonValue operator*() const
|
||||
{
|
||||
return JsonValue(_node);
|
||||
}
|
||||
|
||||
bool operator==(const JsonArrayIterator& other) const
|
||||
{
|
||||
return _node == other._node;
|
||||
}
|
||||
|
||||
bool operator!=(const JsonArrayIterator& other) const
|
||||
{
|
||||
return _node != other._node;
|
||||
}
|
||||
|
||||
private:
|
||||
Internals::JsonNode* _node;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user