Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Function Rückgabewert nach Json Konvertierung stimmt nicht (https://www.delphipraxis.net/194319-function-rueckgabewert-nach-json-konvertierung-stimmt-nicht.html)

Rainer Wolff 8. Nov 2017 16:47

Delphi-Version: 10 Berlin

Function Rückgabewert nach Json Konvertierung stimmt nicht
 
Hallo,

ich versteh grad die Welt mal wieder gar nicht mehr. Function gibt String zurück, der aus einem Record-Array nach JSON konvertiert wird.
Weise ich das Ergebnis direkt an Result zu, kommt Müll dabei raus (Variante 1 im Quellcode).
Speichere ich in einem String zwischen, dann passt alles (Variante 2 im Quellcode).

Die Werte in meinem Array werden korrekt berechnet, wenn ich nach der Zuweisung mit Strg-F7 die Werte anschaue, steht im Ausdruck TJson.Format( LArr) das richtige drin, im Ausdruck result hingegen stehen plötzlich Werte für Pos-Vorschub, die im Array gar nicht vorkommen.

Code:
function TTestCalculate.CalculateOld(typ: Edit):string;
var
  LJson, LJsonObject: TJSONObject;
  LArr: TJSONArray;
  i: integer;
  ergebnis:string;
begin
    if FormCalculate.DoCalculate(Data, KORREKTUR_ANSCHLAG, KORREKTUR_STANZPOS, true) = mrOk then
    begin
      for i := 0 to 199 do
      begin
        LJson := TJSONObject.Create;
        LJson.AddPair(TJSONPair.Create('PosVorschub', Programm[i].PosVorschub.ToString));
        ... // hier kommen noch ein paar Zuweisungen
        LJson.AddPair(TJSONPair.Create('Freigaben2', Programm[i].Freigaben2.ToString));
        LArr.Add(LJson);
      end;
      result:= TJson.Format( LArr); // <-- Variante 1
//      ergebnis:=TJson.Format( LArr); // <-- Variante 2
//      Result:=ergebnis;              // <-- Variante 2
    end;
  finally
    LArr.Free;
  end;
end;

Der schöne Günther 8. Nov 2017 17:18

AW: Function Rückgabewert nach Json Konvertierung stimmt nicht
 
Guckst du hier:
http://www.delphipraxis.net/192970-t...ehlerhaft.html

Lerne: Zweifele zuerst am Embarcadero, dann an dir ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.

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