'maps' in Delphi

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Scurra
Beiträge: 29
Registriert: Mi 31. Dez 2014, 12:08

'maps' in Delphi

Beitrag von Scurra »

Hallo Leute,

ich melde mich schon wieder. Ich bin beim Programmieren heute auf ein Problem gestoßen (ich habe den Quelltext leider gerade nicht bei mir zu Hause): Ich habe mit einem JSON-String, grob gesagt eine solche Form hat:

'{"Name1": "Wert1", "Name2": "Wert2", ...}'

Einem Name ist also immer ein Wert zugehordnet, evtl. auch mit einer Unterstruktur, bei der z. B. Wert1 wieder aus so eine Art "Liste" besteht. Mich interessiert nun, ob es in Delphi einen Datentyp gibt, der auch eine solche Form hat. Das ist so etwas wie eine map in Python. Ich möchte nämlich alle Teile dieses Strings extrahieren, also Name1, Wert1, Name2, Wert2 usw. (auch ggf. auch die Untersturkturen) und dachte mir, dass da so etwas wie eine map in Python genau das Richtig ist.
Ich habe bisher das JSON-Paket von Delphi verwendet, bei dem ich bisher zumindest herausgefunden habe, wie ich auf die Werte zugreifen kann, wie ich auf die Namen zugreifen kann, muss ich morgen noch herausfinden. Aber wie gesagt, mich würde eigentlich hauptsächlich interessieren, ob es so etwas wie maps von Python auch in Delphi gibt bzw. vllt. hat auch jemand noch eine andere Idee, wie man so eine Datenstruktur gut einlesen kann.

Benutzeravatar
theo
Beiträge: 10861
Registriert: Mo 11. Sep 2006, 19:01

Re: 'maps' in Delphi

Beitrag von theo »

JSON ist bei Lazarus dabei, sogar ein fertiger Viewer.
Schau mal under /tools/jsonviewer

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: 'maps' in Delphi

Beitrag von marcov »

Delphi/FPC ist keine Scriptsprache. An einem Typ ist immer ein direkte Speicherlayout verbunden. Es ist entweder ein String oder ein Integer usw.

Es gibt ja ausnahmem, zb das Typ Variant. Sehe dich mal dieser Kode an: http://www.stack.nl/~marcov/phpser.zip

Antworten