Перейти к содержанию
Fire Monkey от А до Я
  • 0

Убрать поле при сериализации


rareMax

Вопрос

Как убрать поле класса из сериализации через Rest.Json?

Вот как я пробую избавиться от поля Foo:

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  REST.Json,
  System.JSON.Serializers,
  System.SysUtils;

type
  TFoo = class
  private
    FValue1: Integer;
  public
    Value2: Integer;
    property Value3: Integer read FValue1 write FValue1;
  end;

  [JsonSerialize(TJsonMemberSerialization.&Public)]
  TBar = class
  private
    FValue1: Integer;
    FFoo: TFoo;
  public
    Value2: Integer;
    property Value3: Integer read FValue1 write FValue1;
  //  property Foo: TFoo read FFoo write FFoo;
  end;

procedure Test;
var
  LBar: TBar;
begin
  LBar := TBar.Create;
  try
    Writeln(TJson.ObjectToJsonString(LBar));
  finally
    LBar.Free;
  end;
end;

begin
  try
    { TODO -oUser -cConsole Main : Insert code here }
    Test;
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

Но на выходе все равно есть поле Foo.

Цитата

{"value1":0,"foo":null,"value2":0}

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
12 часов назад, wamaco сказал:

TBar = class
  private
    FValue1: Integer;
  // FFoo: TFoo;
  public
    Value2: Integer;
    property Value3: Integer read FValue1 write FValue1;
  //  property Foo: TFoo read FFoo write FFoo;
  end;

Попробуй так...

Ну на самом деле FFoo в приватной секции мне нужна.

12 часов назад, r@di0 сказал:

TFoo = class(TObject)
  private
    [JSONMarshalled(False)]
    FAge: Byte;
  public
    FName    : string;
    FSurname : string;
  end;

Отлично, то что нужно

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...