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)