Thema: Rest JSON

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Rest JSON

  Alt 3. Nov 2014, 01:45
Nun das TryGetValue arbeitet genauso wie alle Try Varianten (TryStrToInt , ...)
Delphi-Quellcode:
if LJSONObject.TryGetValue<string>(
  { APath } 'author',
  { out AValue } LStr ) then
  WriteLn( 'author found: ', LStr )
else
  WriteLn( 'author not found!' );
oder auf dein Beispiel angewendet
Delphi-Quellcode:
if MainForecast.TryGetValue<string>( 'title', LStr ) then
  Title := LStr
else
  Title := '';
Wenn dir das zu umständlich ist, dann bau dir einfach einen Helper
Delphi-Quellcode:
type
  TJSONValueHelper = class helper for TJSONValue
  public
    function GetValue<T>( const APath: string; ADefault: T ): T;
  end;

function TJSONValueHelper.GetValue<T>( const APath: string; ADefault: T ): T;
begin
  if not TryGetValue<T>( APath, Result )
  then
    Result := ADefault;
end;
und dann geht das einfach so
Delphi-Quellcode:
Title := MainForecast.GetValue<string>(
  { APath } 'title',
  { ADefault } '' );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat