/* * Arduino JSON library * Benoit Blanchon 2014 - MIT License */ #pragma once #include "EscapedString.h" #include "JsonObjectBase.h" namespace ArduinoJson { namespace Generator { template class JsonHashTable : public JsonObjectBase { public: JsonHashTable() { itemCount = 0; } template void add(const char* key, T value) { if (itemCount >= N) return; items[itemCount].key.set(key); items[itemCount].value.set(value); itemCount++; } template void add(const char* key, double value) { if (itemCount >= N) return; items[itemCount].key.set(key); items[itemCount].value.set(value); itemCount++; } using JsonObjectBase::printTo; private: struct KeyValuePair { Internals::EscapedString key; Internals::JsonValue value; }; KeyValuePair items[N]; int itemCount; virtual size_t printTo(Print& p) const { size_t n = 0; n += p.write('{'); for (int i = 0; i < itemCount; i++) { if (i > 0) { n += p.write(','); } n += items[i].key.printTo(p); n += p.write(':'); n += items[i].value.printTo(p); } n += p.write('}'); return n; } }; } }