AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Gehen strings als Eigenschaftsnamen? Wenn ja wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Gehen strings als Eigenschaftsnamen? Wenn ja wie?

Ein Thema von ScharfeMietze · begonnen am 7. Okt 2018 · letzter Beitrag vom 8. Okt 2018
 
Schokohase
(Gast)

n/a Beiträge
 
#24

AW: Gehen strings als Eigenschaftsnamen? Wenn ja wie?

  Alt 7. Okt 2018, 22:24
Gibt es eigentlich einen Grund dafür warum du nicht einfach eine Klasse mit den passenden Eigenschaften deklarierst und dann mit Delphi-Referenz durchsuchenREST.Json.TJson.JsonToObject arbeitest?

Die GroupOptions würden z.B. in diese Klasse passen
Delphi-Quellcode:
uses
  REST.Json.Types;

TGroupOptionsData = class
private
  [JSONName( 'ChatID' )]
  FChatId: string;
  [JSONName( 'DeleteSpam' )]
  FDeleteSpam: Boolean;
  [JSONName( 'RestrictNewUser' )]
  FRestrictNewUser: Boolean;
  [JSONName( 'AntiSpamMessage' )]
  FAntiSpamMessage: string;
  [JSONName( 'can_send_messages' )]
  FCanSendMessages: Boolean;
  [JSONName( 'can_send_media_messages' )]
  FCanSendMediaMessages: Boolean;
  [JSONName( 'can_send_other_messages' )]
  FCanSendOtherMessages: Boolean;
  [JSONName( 'can_add_web_page_previews' )]
  FCanAddWebPagePreviews: Boolean;
  [JSONName( 'Creator' )]
  FCreator: string;
  [JSONName( 'blacklist' )]
  FBlacklist: string;
  [JSONName( 'whitelist' )]
  FWhitelist: string;
  [JSONName( 'restrict_time' )]
  FRestrictTime: Integer;
  [JSONName( 'welcomemessage' )]
  FWelcomeMessage: string;
  [JSONName( 'start' )]
  FStart: Boolean;
public
  property ChatId: string read FChatId write FChatId;
  property DeleteSpam: Boolean read FDeleteSpam write FDeleteSpam;
  property RestrictNewUser: Boolean read FRestrictNewUser write FRestrictNewUser;
  property AntiSpamMessage: string read FAntiSpamMessage write FAntiSpamMessage;
  property CanSendMessages: Boolean read FCanSendMessages write FCanSendMessages;
  property CanSendMediaMessages: Boolean read FCanSendMediaMessages write FCanSendMediaMessages;
  property CanSendOtherMessages: Boolean read FCanSendOtherMessages write FCanSendOtherMessages;
  property CanAddWebPagePreviews: Boolean read FCanAddWebPagePreviews write FCanAddWebPagePreviews;
  property Creator: string read FCreator write FCreator;
  property Blacklist: string read FBlacklist write FBlacklist;
  property Whitelist: string read FWhitelist write FWhitelist;
  property RestrictTime: Integer read FRestrictTime write FRestrictTime;
  property WelcomeMessage: string read FWelcomeMessage write FWelcomeMessage;
  property Start: Boolean read FStart write FStart;
end;
und dann einfach
Delphi-Quellcode:
uses
  REST.Json;

const
  jsonstr = //
    ' {' + sLineBreak + //
    ' "ChatID": "-xxxxxx",' + sLineBreak + //
    ' "DeleteSpam": true,' + sLineBreak + //
    ' "RestrictNewUser": true,' + sLineBreak + //
    ' "AntiSpamMessage": "SpamPost",' + sLineBreak + //
    ' "can_send_messages": true,' + sLineBreak + //
    ' "can_send_media_messages": false,' + sLineBreak + //
    ' "can_send_other_messages": false,' + sLineBreak + //
    ' "can_add_web_page_previews": false,' + sLineBreak + //
    ' "Creator": "blablub",' + sLineBreak + //
    ' "blacklist": "blablub",' + sLineBreak + //
    ' "whitelist": "",' + sLineBreak + //
    ' "restrict_time": 15,' + sLineBreak + //
    ' "welcomemessage": "",' + sLineBreak + //
    ' "start": true' + sLineBreak + //
    ' }';
var
  options: TGroupOptionsData;
begin
  options := TJson.JsonToObject<TGroupOptionsData>(jsonstr);
  try
    // ...
  finally
    options.Free;
  end;
end;
  Mit Zitat antworten Zitat
 


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 10:25 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