Для Syste,.JSON необходимо использовать атрибуты по типу которые расположены в REST.Json.Types
[JSONNameAttribute('НАЗВАНИЕ')] -Так ваша переменная назвается в JSON
[JSONMarshalledAttribute(False)] - Так блокируется выгрузка (нащет загрузки не уверен) тоесть при TJsonObject(oJSON).ToString переменной с таким атрибутом не будет
TItems = class
private
[JSONNameAttribute('ERROR')]
FERROR: String;
[JSONNameAttribute('RESULT')]
FRESULT: String;
[JSONMarshalledAttribute(False)]
FOwner : TItems;
public
property ERROR : String read FERROR write FERROR;
property RESULT : String read FRESULT write FRESULT;
property Owner : TItems read FOwner write FOwner;
end;
-------------Результат TJsonObject().ToString---------------------
{"ERROR": "", "RESULT": ""}
==================================================================
TItems = class
private
FERROR: String;
FRESULT: String;
FOwner : TItems;
public
property ERROR : String read FERROR write FERROR;
property RESULT : String read FRESULT write FRESULT;
property Owner : TItems read FOwner write FOwner;
end;
-------------Результат TJsonObject().ToString---------------------
{"eRROR": "", "rESULT": "", "owner": ""}
Если честно то не знаю почему так все используют XSuperObject, встроенного инструмента "System.JSON, REST.Json, REST.Json.Types" с головой хватает на всё