如何获取仅包含名称和标志的 JSON?
TUser = class
private
FName: string;
FFlags: UInt32;
FFields: UInt32;
FCreated: TDateTime;
public
property Name: string read FName write FName;
property Flags: UInt32 read FFlags write FFlags;
property Fields: UInt32 read FFields write FFields;
property Created: TDateTime read FCreated write FCreated;
constructor Create;
end;
通常用于该类的所有字段:
var
User: TUser
sJson: string;
sJson := User.AsJson;
但有时我只需要一个带有名称和标志字段的 JSON。目前,为了获得这样的 JSON,我使用这样的代码:
var
User: TUser
usr: ISuperObject;
sJson: string;
usr := SO(User.AsJson);
usr.Remove('Fields');
usr.Remove('Created');
sJson := usr.AsJSON;
但我认为不是最佳代码(实际上在实际代码中我有 15 个字段,需要删除 12 个)。如何更快地做到这一点?
更新(另一种方法):
可能这对我的目的会更快更有用吗?
usr := SO('');
usr.S['Name'] := User.Name;
usr.I['Flags'] := User.Flags;
sJson := usr.AsJSON;