Einzelnen Beitrag anzeigen

Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
320 Beiträge
 
Delphi 10.4 Sydney
 
#1

Function Rückgabewert nach Json Konvertierung stimmt nicht

  Alt 8. Nov 2017, 17:47
Delphi-Version: 10 Berlin
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;
  Mit Zitat antworten Zitat