wenn man meinen Kenntnisstand voraussetzt, dass durch das Zerstören des Main-JSON-Objekts auch alle TJSONValue-Objekte automatisch zerstört werden
Nicht immer. Wird irgendwo an der Owned-Eigenschaft etwas geändert? Ein standardmäßig erzeugter
TJsonString
hat
GetOwned() = True
, das sorgt eigentlich dafür dass er von seinem Parent freigegeben wird wenn es selbst endet. Ist das nicht der Fall, wird er auch nicht freigegeben.
Ansonsten solltest du unbedingt
FastMM4 in der vollen Version einbauen, der kann dir bei Speicherlecks
genau anzeigen wo es erstellt wurde.