Thema: Delphi JSON To Object Problem

Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.024 Beiträge
 
Delphi 12 Athens
 
#2

AW: JSON To Object Problem

  Alt 17. Apr 2021, 10:46
  1. values ist ein Array
  2. meters ebenso (arrays sind keine TObjectList)

Die JsonName-Attribute kannst du weglassen, wenn das Feld lediglich dem Json-Namen mit vorangestellten F entspricht (value -> FValue). Dabei kann der Buchstabe nach dem F auch großgeschrieben werden.

Versuch's mal so:
Delphi-Quellcode:
type
  TValue = class
  private
    Fdate: string;
    Fvalue: Integer;
  published
    property date: string read Fdate write Fdate;
    property value: Integer read Fvalue write Fvalue;
  end;
  TValues = TArray<TValue>;

  TMeter = class
  private
    Ftype: string;
    Fvalues: TValues;
  public
    destructor Destroy; override;
  published
    property types: string read Ftype write Ftype;
    property values: TValues read Fvalues write Fvalues;
  end;
  TMeters = TArray<TMeter>;

  TEnergyDetails = class
  private
    FtimeUnit: string;
    Funit: string;
    Fmeters: TMeters;
  public
    destructor Destroy; override;
  published
    property timeUnit: string read FtimeUnit;
    property units: string read Funit;
    property meters: TMeters read Fmeters;
  end;

implementation

destructor TMeter.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(FValues) - 1 do
    FValues[I].Free;
  inherited;
end;

destructor TEnergyDetails.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(Fmeters) - 1 do
    Fmeters[I].Free;
  inherited;
end;
Wenn du TObjecList für ein Json-Array verwenden willst empfehle ich diesen Artikel: Serializing Generic Object Lists with TJson
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat