Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   RestServer Antwort Json ohne "[" Klammern (https://www.delphipraxis.net/188108-restserver-antwort-json-ohne-%5B-klammern.html)

ScharfeMietze 3. Feb 2016 12:29

AW: RestServer Antwort Json ohne "[" Klammern
 
Perfect!! Danke für die Antwort. Das sind immer diese Fehlerteufel wenn man es nicht beachtet und dann das Wundern losgeht.

Gruß
SM;)

ScharfeMietze 3. Feb 2016 13:07

AW: RestServer Antwort Json ohne "[" Klammern
 
Dann könnte die function so aussehen
Delphi-Quellcode:
function TServerMethods1.updateHddCrawler(Key: string; aJSONObject: TJSONObject): TJSONObject;
var
  LJSONObject: TJSONObject;
  s: string;
begin
Result := TJSONObject.Create;
  try
   if KeyValidation(Key) then frmHddCrawler.AnalyzeJson(aJSONObject,Result)
   else Result.AddPair('error', 'invalid key') ;
  except
   Result.Free;
   raise;
  end;
end;
Einwände?

Sir Rufo 3. Feb 2016 13:16

AW: RestServer Antwort Json ohne "[" Klammern
 
Was die Erzeugung der Result-Instanz angeht -> Nein.

Der Rest sieht seltsam aus :stupid:

ScharfeMietze 3. Feb 2016 13:50

AW: RestServer Antwort Json ohne "[" Klammern
 
Jap! Zum Testen an sich nutze ich gerne Formen. Vor allem in der Planung. Dann kann ich mir auch mal per button Inhalte ausgeben lassen, oder auch mal eine kleine Testroutine einpflegen.
Oder meintest du was anderes?

Sir Rufo 3. Feb 2016 14:08

AW: RestServer Antwort Json ohne "[" Klammern
 
Auch ...

Du willst doch etwas konkretes
Delphi-Quellcode:
frmHddCrawler.Analyze
erledigen und übergibst dafür irgendwas
Delphi-Quellcode:
TJSONObject
.

Delphi-Quellcode:
ICrawlHdd = interface
  function Analyze( request : THddCrawlerRequest ) : THddCrawlerResponse;
end;

function TServerMethods1.updateHddCrawler(Key: string; aJSONObject: TJSONObject): TJSONObject;
var
  request: THddCrawlerRequest;
  response: THddCrawlerResponse;
  error : TErrorResponse;
begin
  // Prüfung ob die Daten im Json zum Aufruf passen
  request := TJson.JsonToObject<THddCrawlerRequest>( aJSONObject );
  try
   if KeyValidation(Key) then
   begin
     // Dienst fragen
     response := HddCrawlerService.Analyze( request );
     try
       // Ergebnis in Json umwandeln
       Result := TJson.ObjectToJsonObject( response );
     finally
       response.Free;
     end;
   end
   else
     begin
       error := TErrorResponse.Create( 'invalid key' );
       try
         Result := TJson.ObjectToJsonObject( error );
       finally
         error.Free;
       end;
     end;
  finally
    request.Free;
  end;
end;
Wer jetzt den
Delphi-Quellcode:
ICrawlHdd
genau ausführt, kann dir egal sein. Und ob die Daten irgenwann mal per JSON gekommen sind, ist dem Service jetzt auch egal. Der brauchst also kein JSON mehr zu kennen.

Als Service kannst du auch eine Form verwenden:
Delphi-Quellcode:
THddCrawlerForm = class( TForm, ICrawlHdd )
private { ICrawlHdd }
  function Analyze( request: THddCrawlerRequest ): THddCrawlerResponse;
end;

ScharfeMietze 3. Feb 2016 14:28

AW: RestServer Antwort Json ohne "[" Klammern
 
Ja das macht Sinn THX :)

Gruß
SM;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz