Merged JsonArrayIterator and JsonObjectIterator into a one template class

This commit is contained in:
Benoit Blanchon
2014-10-24 18:53:03 +02:00
parent 1f6cd8e56e
commit 582216e004
11 changed files with 45 additions and 69 deletions

View File

@ -7,11 +7,15 @@
#pragma once
#include "JsonContainer.hpp"
#include "JsonObjectIterator.hpp"
#include "JsonIterator.hpp"
#include "JsonObjectKeyValue.hpp"
namespace ArduinoJson {
class JsonObject : public JsonContainer {
public:
typedef JsonIterator<JsonObjectKeyValue> iterator;
typedef JsonConstIterator<JsonObjectKeyValue> const_iterator;
JsonObject() {}
explicit JsonObject(Internals::JsonNode *node) : JsonContainer(node) {}
@ -24,9 +28,11 @@ class JsonObject : public JsonContainer {
bool success() { return _node && _node->isObject(); }
JsonObjectIterator begin() { return JsonObjectIterator(firstChild()); }
iterator begin() { return iterator(firstChild()); }
iterator end() { return iterator(0); }
JsonObjectIterator end() { return JsonObjectIterator(0); }
const_iterator begin() const { return const_iterator(firstChild()); }
const_iterator end() const { return const_iterator(0); }
private:
Internals::JsonNode *getOrCreateNodeAt(const char *key);