AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

JSON -> Database -> Auswertung ?

Ein Thema von bernhard_LA · begonnen am 1. Mai 2022 · letzter Beitrag vom 8. Mai 2022
 
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.142 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: JSON -> Database -> Auswertung ?

  Alt 6. Mai 2022, 13:21
Update :

Über RTTI besorge ich mir die Namen aller Properies meiner Klasse als Stringliste.
Diese Stringliste übergebe ich dann an meine JSON Auswerte + CSV File schreibe funktion.

Eine dynamische Ermittlung alle Namen aus dem JSON File wäre besser (flexibler) für mich.
Wer ähnliche Ausfgaben hat kann hier gerne auch was posten , aktuell bin ich einen Schritt weiter.





Delphi-Quellcode:

procedure TMyForm.ShowJSONarraylistUsingProperties
  (sLst: TStringlist; csvfilename: String);
var
  jsArr: TJSONArray;
  originalObject: TJsonObject;
  jsPair: TJsonPair;
  jsObj: TJsonObject;
  JsVAl: TJsonValue;
  i: Integer;
  Singleline: string;
  HeaderCSV: string;
  DataCSV: string;

  csvfile: TStringlist;
begin

  csvfile := TStringlist.Create;
  try

    JsVAl := TJsonObject.ParseJSONValue(FJSONStr);

    // value as object
    originalObject := JsVAl as TJsonObject;

    // get pair, wich contains Array of objects
    jsPair := originalObject.Get('listHelper');

    // pair value as array
    jsArr := jsPair.jsonValue as TJSONArray;

    // writeln('array size: ', jsArr.Size);
    // enumerate objects in array
    for i := 0 to jsArr.Size - 1 do
    begin
      LogMemo.Lines.Add('element ' + IntTostr(i));
      // i-th object
      jsObj := jsArr.Get(i) as TJsonObject;

      HeaderCSV := '';
      DataCSV :='';


      // enumerate object fields
      for jsPair in jsObj do
      begin
        if (sLst.IndexOf(jsPair.JsonString.Value) > 0) then
        begin
          Singleline := Singleline + ' [' + jsPair.JsonString.Value + ' : ' +
            jsPair.jsonValue.Value + '] ';
          HeaderCSV := HeaderCSV + jsPair.JsonString.Value+ '; ';
          DataCSV := DataCSV + jsPair.jsonValue.Value + '; ';
        end;
      end;

      if i = 0 then
        csvfile.Add(HeaderCSV);

      csvfile.Add(DataCSV);

      LogMemo.Lines.Add(Singleline);

    end;

  finally
    csvfile.SaveToFile(csvfilename);

    csvfile.Free;
  end;
end;

Geändert von bernhard_LA ( 6. Mai 2022 um 13:25 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz