AGB  ·  Datenschutz  ·  Impressum  







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

JSON String

Ein Thema von JensM · begonnen am 5. Jan 2021 · letzter Beitrag vom 5. Jan 2021
Antwort Antwort
JensM

Registriert seit: 26. Jan 2020
21 Beiträge
 
Delphi 10.4 Sydney
 
#1

JSON String

  Alt 5. Jan 2021, 12:17
Hallo Leute,
ich habe folgende frage:

Ich habe diesen JAson string:

{"products":[
{"id":123,"title":"abc"},
{"id":567,"title":"def"},
{"id":789,"title":"ghi"}
]}

Ist es nun irgendwie mögliche herauszufinden welche Kategorien ("id" und "title") in diesem String drin sind. Also ist es möglich den STring irgendwie einzulesen und dann werden mir die Kategorien wieder zurück gegeben.

Vielen Dank Jens
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: JSON String

  Alt 5. Jan 2021, 12:29
Ja klar. Erstell dir einfach eine Klasse die das Objekt abbildet. Wichtig in dem Zusammenhang ist, dass die Felder mit "F" anfangen. Dann kannst du einfach mit TJson.JsonToObject<TMyClass>(JsonString) den JSON String einlesen und in ein Objekt wandeln lassen.

Siehe auch hier.
  Mit Zitat antworten Zitat
JensM

Registriert seit: 26. Jan 2020
21 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: JSON String

  Alt 5. Jan 2021, 12:53
Hey, danke für deine schnelle antwort. Hast du vllt nen kleines beispiel oder nen Programm auschnitt wie man das umsetzt?

Code:
  SLid:=TStringList.Create;
  SLtitle:=TStringList.Create;
  JsonValue := TJSonObject.ParseJSONValue(RESTResponse1.Content);
  for i := 0 to JSonValue.InstanceSize-2 do
    begin
      SLid.Add(JsonValue.GetValue<string>('products['+ Inttostr(i) +'].id'));
      SLtitle.add(JSonValue.GetValue<string>('products['+ Inttostr(i) +'].title'));
    end;
So mache ich das zur zeit. Aber will halt das ID und title variable halten.

danke dir

Geändert von JensM ( 5. Jan 2021 um 12:57 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: JSON String

  Alt 5. Jan 2021, 13:04
Hi, ich habe das jetzt nur mal schnell im Editor runtergetippt damit du eine Idee bekommst wie so etwas ablaufen kann. Kann natürlich gut sein, dass hier und dort noch ein kleinerer Fehler drin ist. Aber das solltest du dann recht schnell in den Griff bekommen.

Delphi-Quellcode:
type
  TProduct = class
  private
    FId: Integer;
    FTitle: string;
  public
    property ID: Integer read FId write FId;
    property Title: string read FTitle write FTitle;
  end;

  TProductList = class
  private
    FProducts: TArray<TProduct>;
  public
    property Products: TArray<TProduct> read FProducts write FProducts;
  end;

implementation

function ConvertToObject(s: string): TProductList;
begin
  try
    Result := TJson.JsonToObject<TProductList>(s);
  except
    on E: Exception do
    begin
      // Log exception here
    end;
  end;
end;
PS: Deine Delphi Version im Profil wäre hilfreich. Die Rest.Json Klasse gibt es nämlich erst in den neueren Delphi Versionen.
  Mit Zitat antworten Zitat
JensM

Registriert seit: 26. Jan 2020
21 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: JSON String

  Alt 5. Jan 2021, 13:07
Super, Vielen Danken ich probiers mal aus (Dehlphi Version: 10.4)
  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 07:52 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