Не делайте слепое приведение типов...
var JObj:TJSONObject;
begin
JObj:=TJSONObject(TJSONObject.ParseJSONValue('0'));
try
try
if assigned(JObj) then
JObj.AddPair('Access','violation');
except
ShowMessage('Surprise MF!: '+JObj.ClassName);
end;
finally
JObj.Free;
end;
end;
ParseJSONValue возвращает TJSONValue, и необходима или проверка типа или использование только в рамках TJSONValue чего в большинстве случаев вполне достаточно.