ESPAsyncWebServer JSON response example for ArduinoJson 6
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);