The ESPAsyncWebserver page features an example for generating a basic JSON response using ArduinoJson:
#include "AsyncJson.h" #include "ArduinoJson.h" AsyncResponseStream *response = request->beginResponseStream("application/json"); DynamicJsonBuffer jsonBuffer; JsonObject &root = jsonBuffer.createObject(); root["heap"] = ESP.getFreeHeap(); root["ssid"] = WiFi.SSID(); root.printTo(*response); request->send(response);
However, that example is made for ArduinoJson 5.x whereas most users want to use the updated ArduinoJson 6.x.
ArduinoJson 6.x minimal ESPAsyncWebserver example:
AsyncResponseStream *response = request->beginResponseStream("application/json"); DynamicJsonDocument json(1024); json["status"] = "ok"; json["ssid"] = WiFi.SSID(); json["ip"] = WiFi.localIP(); serializeJson(json, *response); request->send(response);