AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi JsonToObject überreden ein leeres Objekt zu verarbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

JsonToObject überreden ein leeres Objekt zu verarbeiten

Ein Thema von fisipjm · begonnen am 5. Feb 2024 · letzter Beitrag vom 6. Feb 2024
 
fisipjm

Registriert seit: 28. Okt 2013
333 Beiträge
 
Delphi 12 Athens
 
#3

AW: JsonToObject überreden ein leeres Objekt zu verarbeiten

  Alt 6. Feb 2024, 07:38
Moin Uwe,

hier mal ein Stück Code. Das Müsste es eigentlich recht gut verdeutlichen:

Delphi-Quellcode:
uses
  ...REST.JSON...



type
  TMyJSONObject = class
  private
    FValue1: String;
    FValue2: String;
  public
    property Value1: String read FValue1 write FValue1;
    property Value2: String read FValue2 write FValue2;
  end;

type
  TMyJsonNestedObject = class
  private
    FNeuesLeeresObject: TMyJSONObject;
  published
    property NeuesLeeresObject: TMyJSONObject read FNeuesLeeresObject write FNeuesLeeresObject;
  end;

procedure Foo;
var
  MyJSONObject : TMyJSONObject;
  MyJsonNestedObject: TMyJsonNestedObject;
begin
  MyJSONObject := TMyJSONObject.create;
  try
    MyJsonNestedObject := TMyJsonNestedObject.Create;
    try
      MyJSONObject := TJson.JsonToObject<TMyJSONObject>('{'+
                                                            '"Value1":"Ich bin Wert1",'+
                                                            '"Value2":"Ich bin Wert2"'+
                                                        '}');
      ShowMessage('Geht');

      MyJSONObject := TJson.JsonToObject<TMyJSONObject>('{'+
                                                            '"Value1":"Ich bin Wert1",'+
                                                            '"Value2":"Ich bin Wert2",'+
                                                            '"NeuerWert":"-NeuerWert-"'+
                                                        '}');
      ShowMessage('Geht immer noch');

      MyJSONObject := TJson.JsonToObject<TMyJSONObject>('{'+
                                                            '"Value1":"Ich bin Wert1",'+
                                                            '"Value2":"Ich bin Wert2",'+
                                                            '"NeuerWert":"-NeuerWert-",'+
                                                            '"NeuesLeeresArray":["ich","hab","sogar","Werte"]'+
                                                        '}');
      ShowMessage('Geht weiterhin');

      MyJSONObject := TJson.JsonToObject<TMyJSONObject>('{'+
                                                            '"Value1":"Ich bin Wert1",'+
                                                            '"Value2":"Ich bin Wert2",'+
                                                            '"NeuerWert":"-NeuerWert-",'+
                                                            '"NeuesLeeresArray":["ich","hab","sogar","Werte"],'+
                                                            '"NeuesLeeresObject":[{}]'+
                                                        '}');
      ShowMessage('Geht sogar im Array');

      try
        MyJSONObject := TJson.JsonToObject<TMyJSONObject>('{'+
                                                              '"Value1":"Ich bin Wert1",'+
                                                              '"Value2":"Ich bin Wert2",'+
                                                              '"NeuerWert":"-NeuerWert-",'+
                                                              '"NeuesLeeresArray":["ich","hab","sogar","Werte"],'+
                                                              '"NeuesLeeresObject":{}'+
                                                          '}');
      except
        on e:exception do
        begin
          showmessage(e.ClassName + ' - ' + e.Message);
        end;
      end;

      MyJsonNestedObject := TJson.JsonToObject<TMyJsonNestedObject>('{'+
                                                              '"Value1":"Ich bin Wert1",'+
                                                              '"Value2":"Ich bin Wert2",'+
                                                              '"NeuerWert":"-NeuerWert-",'+
                                                              '"NeuesLeeresArray":["ich","hab","sogar","Werte"],'+
                                                              '"NeuesLeeresObject":{}'+
                                                          '}');
      showmessage('Geht wieder');

      MyJsonNestedObject := TJson.JsonToObject<TMyJsonNestedObject>('{'+
                                                              '"Value1":"Ich bin Wert1",'+
                                                              '"Value2":"Ich bin Wert2",'+
                                                              '"NeuerWert":"-NeuerWert-",'+
                                                              '"NeuesLeeresArray":["ich","hab","sogar","Werte"],'+
                                                              '"NeuesLeeresObject":{"Value1":"Nested Value1"}'+
                                                          '}');
      showmessage('Sogar mit Wert: '+MyJsonNestedObject.NeuesLeeresObject.FValue1);
    finally
      MyJsonNestedObject.Free;
    end;
  finally
    MyJSONObject.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 17:44 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