forked from bblanchon/ArduinoJson
Simplified JsonArray
This commit is contained in:
@ -24,12 +24,14 @@ class JsonArray : public JsonContainer {
|
||||
|
||||
JsonValue operator[](int index) const;
|
||||
|
||||
void add(bool value);
|
||||
void add(const char *value);
|
||||
void add(double value, int decimals = 2);
|
||||
void add(int value) { add(static_cast<long>(value)); }
|
||||
void add(long value);
|
||||
void add(JsonContainer nestedArray); // TODO: should allow JsonValue too
|
||||
template <typename T>
|
||||
void add(T value) {
|
||||
addNewValue() = value;
|
||||
}
|
||||
|
||||
void add(double value, int decimals = 2) {
|
||||
addNewValue().set(value, decimals);
|
||||
}
|
||||
|
||||
JsonArray createNestedArray();
|
||||
JsonObject createNestedObject();
|
||||
@ -41,5 +43,8 @@ class JsonArray : public JsonContainer {
|
||||
|
||||
const_iterator begin() const { return const_iterator(firstChild()); }
|
||||
const_iterator end() const { return const_iterator(0); }
|
||||
|
||||
private:
|
||||
JsonValue addNewValue();
|
||||
};
|
||||
}
|
||||
|
@ -7,15 +7,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "Arduino/Printable.hpp"
|
||||
#include "ForwardDeclarations.hpp"
|
||||
#include "Internals/JsonNodeIterator.hpp"
|
||||
#include "Internals/JsonNodeWrapper.hpp"
|
||||
|
||||
namespace ArduinoJson {
|
||||
|
||||
class JsonContainer : public Printable, public Internals::JsonNodeWrapper {
|
||||
friend class JsonArray;
|
||||
|
||||
public:
|
||||
JsonContainer() {}
|
||||
|
||||
|
@ -20,45 +20,10 @@ JsonValue JsonArray::operator[](int index) const {
|
||||
return JsonValue();
|
||||
}
|
||||
|
||||
void JsonArray::add(bool value) {
|
||||
JsonValue JsonArray::addNewValue() {
|
||||
JsonNode *node = createNode();
|
||||
if (!node) return;
|
||||
|
||||
node->setAsBoolean(value);
|
||||
addChild(node);
|
||||
}
|
||||
|
||||
void JsonArray::add(char const *value) {
|
||||
JsonNode *node = createNode();
|
||||
if (!node) return;
|
||||
|
||||
node->setAsString(value);
|
||||
addChild(node);
|
||||
}
|
||||
|
||||
void JsonArray::add(double value, int decimals) {
|
||||
JsonNode *node = createNode();
|
||||
if (!node) return;
|
||||
|
||||
node->setAsDouble(value, decimals);
|
||||
addChild(node);
|
||||
}
|
||||
|
||||
void JsonArray::add(long value) {
|
||||
JsonNode *node = createNode();
|
||||
if (!node) return;
|
||||
|
||||
node->setAsLong(value);
|
||||
addChild(node);
|
||||
}
|
||||
|
||||
// TODO: we should have the same issue as in JsonValue
|
||||
void JsonArray::add(JsonContainer nestedContainer) {
|
||||
JsonNode *node = createNode();
|
||||
if (!node) return;
|
||||
|
||||
node->duplicate(nestedContainer._node);
|
||||
addChild(node);
|
||||
if (node) addChild(node);
|
||||
return JsonValueInternal(node);
|
||||
}
|
||||
|
||||
JsonArray JsonArray::createNestedArray() {
|
||||
|
Reference in New Issue
Block a user