将Json字符串转换为我自己的对象时遇到一些问题。我举个例子:

我的课:

  TClasse = class
  private
    Fid: integer;
    Fnome: string;
    procedure Setid(const Value: integer);
    procedure SetNome(const Value: string);
  published
    property id : integer read Fid write Setid;
    property nome : string read Fnome write SetNome;
  end;

implementation

procedure TClasse.SetNome(const Value: string);
begin
  Fnome := Value;
  Fnome := 'testing: '+Fnome;
end;


我使用该方法:

  cl := TJSON.JsonToObject<TClasse>('{ "id" : 12, "nome" : "abc" }');


这意味着,当执行方法“ JsonToObject”时,他将实例化我的类并通过设置器将值设置为then。属性“ nome”应具有值“ testing:abc”,但它仅包含json中的“ abc”部分。调试也不会通过设置程序。

难道我做错了什么?

最佳答案

您可以创建一个新类,例如TJSON_Respond帮助序列化

TJSON_Respond= class
  public
    [JSONName('id')] id: Integer;
    [JSONName('nome')] nome: String;
  end;

cl := TJson.JSONToObject<TJSON_Respond>('{ "id" : 12, "nome" : "abc" }');

关于rest - TJSON.JsonToObject不通过setter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58082528/

10-11 10:33