AGB  ·  Datenschutz  ·  Impressum  







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

JSON Mapper

Ein Thema von Morphie · begonnen am 4. Apr 2013 · letzter Beitrag vom 8. Apr 2013
Antwort Antwort
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#1

JSON Mapper

  Alt 4. Apr 2013, 16:11
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 Tool mit dem aus XSD-Dateien Klassen generieren kann. Die passenden XML-Dateien lassen sich dann kinderleicht de/serialisieren und man kann danach wunderbar mit richtigen Objekten arbeiten...

Gibt es etwas vergleichbares auch in Delphi mit JSON?
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: JSON Mapper

  Alt 4. Apr 2013, 16:32
Ich kenne das z.B. aus .NET und XML, da gibt es ein Tool mit dem aus XSD-Dateien Klassen generieren kann. Die passenden XML-Dateien lassen sich dann kinderleicht de/serialisieren und man kann danach wunderbar mit richtigen Objekten arbeiten...

Gibt es etwas vergleichbares auch in Delphi mit JSON?
Soweit ich weiß, gibt es keine JSON-Schema-Beschreibungsstandards.
Das mit dem automatischen Klassen-Erstellen wird vermutlich nicht klappen.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

AW: JSON Mapper

  Alt 4. Apr 2013, 16:57
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 (http://sapandiwakar.wordpress.com/20...-jackson-json/)
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#4

AW: JSON Mapper

  Alt 5. Apr 2013, 10:27
Soweit ich weiß, gibt es keine JSON-Schema-Beschreibungsstandards.
Das mit dem automatischen Klassen-Erstellen wird vermutlich nicht klappen.
Dann helfe ich Deinem Wissen mal auf die Sprünge:

http://json-schema.org/

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:
http://sourceforge.net/projects/is-webstart/
http://sourceforge.net/projects/lkjson/
https://code.google.com/p/tiny-json/
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#5

AW: JSON Mapper

  Alt 5. Apr 2013, 10:45
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 DSharp, himXML oder TEasyLinq<T>, die also für die Sprache selbst wertvoll sein können...

Ein Taschenrechnerprogramm oder ein weiteren Medienplayer würde ich als Community-Projekt jetzt nicht nehmen

Gab es in der DP schon mal sowas?
  Mit Zitat antworten Zitat
liquidsphere

Registriert seit: 16. Nov 2010
3 Beiträge
 
#6

AW: JSON Mapper

  Alt 8. Apr 2013, 08:56
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 Tool mit dem aus XSD-Dateien Klassen generieren kann. Die passenden XML-Dateien lassen sich dann kinderleicht de/serialisieren und man kann danach wunderbar mit richtigen Objekten arbeiten...

Gibt es etwas vergleichbares auch in Delphi mit JSON?
https://code.google.com/p/delphi-oop/
https://code.google.com/p/delphi-oop/wiki/SvSerializer
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: JSON Mapper

  Alt 8. Apr 2013, 15:18
Dann helfe ich Deinem Wissen mal auf die Sprünge:
http://json-schema.org/
Danke
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  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 10:42 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