diff --git a/src/AsyncJson.h b/src/AsyncJson.h index b9631ea..52b12f7 100644 --- a/src/AsyncJson.h +++ b/src/AsyncJson.h @@ -78,7 +78,7 @@ class ChunkPrint : public Print { }; class AsyncJsonResponse: public AsyncAbstractResponse { - private: + protected: #ifdef ARDUINOJSON_5_COMPATIBILITY DynamicJsonBuffer _jsonBuffer; @@ -140,6 +140,21 @@ class AsyncJsonResponse: public AsyncAbstractResponse { } }; +class PrettyAsyncJsonResponse: public AsyncJsonResponse { +public: + PrettyAsyncJsonResponse (bool isArray=false) : AsyncJsonResponse{isArray} {} + size_t setLength () { + _contentLength = _root.measurePrettyLength (); + if (_contentLength) {_isValid = true;} + return _contentLength; + } + size_t _fillBuffer (uint8_t *data, size_t len) { + ChunkPrint dest (data, _sentLength, len); + _root.prettyPrintTo (dest); + return len; + } +}; + typedef std::function ArJsonRequestHandlerFunction; class AsyncCallbackJsonWebHandler: public AsyncWebHandler {