![]() |
JSON Mapper
Kennt jemand zufällig einen JSON-Mapper für Delphi?
JSON / REST ist für mich noch relativ neu, daher hier mal "laut gedacht": Angenommen ich bekomme über eine REST-Architektur diverse JSON-Antworten geliefert und möchte diese Antworten in Klassen / Objekte übersetzen, dann kann ich bis jetzt ja mühsam den JSON-String parsen oder auf eine Bibliothek zurückgreifen und mich damit (ähnlich wie bei XML) durch die JSON-Antworten navigieren. Da die Struktur der Antworten aber meist in einer API beschrieben ist, wäre ein "automatisches" Mappen doch ganz praktisch. Ich definiere mir also auf Grundlage der API-Beschreibung alle JSON-Strings mit allen Required / Optional-Feldern, Arrays, Textfeldern, Datumsfelder,... und lasse auf "Knopfdruck" meine Delphi-Klassen generieren. Diese Klassen verfügen dann z.B. über einen Constructor mit dem man die Klassen direkt mit dem JSON-String materialisieren kann... Ich kenne das z.B. aus .NET und XML, da gibt es ein ![]() Gibt es etwas vergleichbares auch in Delphi mit JSON? |
AW: JSON Mapper
Zitat:
Das mit dem automatischen Klassen-Erstellen wird vermutlich nicht klappen. |
AW: JSON Mapper
Für REST gibt es mit WADL etwas ähnliches wie WSDL, es ist eine allgemeine Web Service Beschreibungssprache. Ob die Objekte dann per JSON oder XML serialisiert werden ist sekundär. Anders gesagt, kann man auch eine XSD als Basis zur Klassenerzeugung nehmen, wenn man einen passenden Generator hat. Oder eine SQL DDL, auch dafür gibt es Klassengeneratoren.
Danach erst kommt der JSON Objektmapper ins Spiel. Hier gibt es keinen mir bekannten für Delphi, aber diverse für Java und .Net - mittels RTTI ist das Schreiben eines Mappers im Prinzip kein Problem, nur eine Zeitfrage. Für Java gibt es zum Beispiel Jackson ( ![]() |
AW: JSON Mapper
Zitat:
![]() Der Newtonsoft.JSON Se-/Deserializer in .NET kann z.B. gegen JSON Schema validieren. Ich weiss nicht, ob die Libraries hier das können oder nicht, aber vielleicht ist was passendes dabei: ![]() ![]() ![]() |
AW: JSON Mapper
Wie verarbeitet ihr denn JSON? Hangelt ihr euch durch die einzelnen Elemente und lest die Daten aus? Oder mappt ihr die Daten auch erst in Klassen, um damit später weiterzuarbeiten? Oder gibt es vielleicht noch ganz andere Ansätze?
Ich denke so ein Mapper / (de)serialisierer würde einem viel Arbeit abnehmen... Vielleicht mal als Community-Projekt einführen? ;-) OT: Sowas vermisse ich hier in der DP sowieso... Also reine Community-Projekte, an die jeder freiwillig mitarbeiten kann... Klar gibt es massenweise Open-Source-Projekte von Community-Mitgliedern hier, allerdings beschäftigt sich damit ja kaum einer... Ziel von solchen Projekten sollte auch sein, Delphi weiterzubringen. Z.B. solche Projekte wie ![]() ![]() ![]() Ein Taschenrechnerprogramm oder ein weiteren Medienplayer würde ich als Community-Projekt jetzt nicht nehmen ;-) Gab es in der DP schon mal sowas? |
AW: JSON Mapper
Zitat:
![]() ![]() |
AW: JSON Mapper
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 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