AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Json Superobject Fragen/ Problem

Ein Thema von Pet04 · begonnen am 3. Feb 2016 · letzter Beitrag vom 3. Feb 2016
Antwort Antwort
Pet04

Registriert seit: 26. Sep 2007
86 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Json Superobject Fragen/ Problem

  Alt 3. Feb 2016, 07:16
Hallo zusammen,

Ich muss ein Json File erstellen der folgende Struktur hat.

Code:
{
   "zahlungsmittel": "Bankomat",
   "nachbonieren": true,
   "positionen": [
      {
         "bezeichnung": "Rechnung Nr. 24",
         "menge": 1,
         "einzelpreis": 12000,
         "ust": 19
      },
      {
         "bezeichnung": "Rechnung Nr. 24",
         "menge": 1,
         "einzelpreis": 2000,
         "ust": 19
         ]
}
Ich Habe im Netz "Superobject" gefunden und versucht damit die Json Files zu erstellen.

Leider habe ich ein Problem, dass ich die Struktur bzw. Reihenfolge nicht hinbekomme. Die Bezeichnungen sind Variabel

Hier mein Beispielcode Code:

Benutze Delphi XE2 Pro


Delphi-Quellcode:
//...
var
  json, json_sub: ISuperObject;
 
begin

   json := SO;

   json.S['zahlungsmittel'] := 'Bar';
   json.O['positionen'] := SA([]);
   json.s['Bezeichnung'] := 'P1';
   json.s['menge'] := '1';
   json.s['einzelpreis'] := '1490';
 //json.S['zahlungsmittel'] := 'Bar';
 //json.O['zahlungsmittel'] := SA([]);

    json.SaveTo(Belegname+'.json');
    json := nil;
    json_sub := nil;

end;
Ich hoffe Ihr könnt mir helfen.



Gruß Pet

PS hatte mit Json noch nichts zu tun.

Geändert von TBx ( 3. Feb 2016 um 07:34 Uhr) Grund: Defektes Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Json Superobject Fragen/ Problem

  Alt 3. Feb 2016, 08:33
Schreibe dir erst eine Struktur, wie die Datei aussehen soll
Delphi-Quellcode:
unit Unit1;

interface

uses
  superobject;

(*****************************************************************************
* {
*    "zahlungsmittel": "Bankomat",
*    "nachbonieren": true,
*    "positionen": [
*      {
*          "bezeichnung": "Rechnung Nr. 24",
*          "menge": 1,
*          "einzelpreis": 12000,
*          "ust": 19
*      },
*      {
*          "bezeichnung": "Rechnung Nr. 24",
*          "menge": 1,
*          "einzelpreis": 2000,
*          "ust": 19
*          ]
* }
*****************************************************************************)


type
  TPositionJSON = record
  private
    [ SOName( 'bezeichnung' ) ]
    FBezeichnung: string;
    [ SOName( 'menge' ) ]
    FMenge: Integer;
    [ SOName( 'einzelpreis' ) ]
    FEinzelPreis: Integer;
    [ SOName( 'ust' ) ]
    FUmsatzSteuer: Currency;
    function GetEinzelPreis: Currency;
    procedure SetEinzelPreis( const Value: Currency );
  public
    property Bezeichnung : string read FBezeichnung write FBezeichnung;
    property Menge : Integer read FMenge write FMenge;
    property Einzelpreis : Currency read GetEinzelPreis write SetEinzelPreis;
    property UmsatzSteuer: Currency read FUmsatzSteuer write FUmsatzSteuer;
  end;

  TWhateverJSON = class
  private
    [ SOName( 'zahlungsmittel' ) ]
    FZahlungsmittel: string;
    [ SOName( 'nachbonieren' ) ]
    FNachbonieren: Boolean;
    [ SOName( 'positionen' ) ]
    FPositionen: TArray<TPositionJSON>;
  public
    property Zahlungsmittel: string read FZahlungsmittel write FZahlungsmittel;
    property Nachbonieren : Boolean read FNachbonieren write FNachbonieren;
    property Positionen : TArray<TPositionJSON> read FPositionen write FPositionen;
  end;

implementation

{ TPositionJSON }

function TPositionJSON.GetEinzelPreis: Currency;
begin
  Result := FEinzelPreis / 100;
end;

procedure TPositionJSON.SetEinzelPreis( const Value: Currency );
begin
  FEinzelPreis := Value * 100;
end;

end.
dann fülle die Struktur mit Leben und einfach durch SO jagen, fertig.

Delphi-Quellcode:
uses
  superobject;

var
  lWE : TWhateverJSON;
begin
  lWE := TWhatever.Create;

  // Datein in lWE rein

  lWE.ToJSON().SaveToFile( 'foo.json' );
end;
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)
  Mit Zitat antworten Zitat
Pet04

Registriert seit: 26. Sep 2007
86 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Json Superobject Fragen/ Problem

  Alt 3. Feb 2016, 13:37
wie bekomme ich nun die Positionen mit Daten gefüllt.

lWE.FPositionen ???
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Json Superobject Fragen/ Problem

  Alt 3. Feb 2016, 13:40
wie bekomme ich nun die Positionen mit Daten gefüllt.

lWE.FPositionen ???
Ich würde es ja mit einer der public property versuchen.
TWhateverJSON.Positionen scheint mir ein aussichtsreicher Kandidat zu sein.

Dem einfach ein Array mit Positionen zuweisen
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)
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:29 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