
Neon ist eine Serialisierungsbibliothek für Delphi, die Ihnen hilft, Objekte und andere Werte in JSON zu konvertieren. Es unterstützt einfache Delphi -Typen, aber auch komplexe Klassen und Datensätze. Neon wurde unter Berücksichtigung von Ruhe entwickelt, um reine Daten zwischen Anwendungen ohne "Metadaten" oder hinzugefügten Feldern auszutauschen.
Bitte werfen Sie einen Blick auf die Demos, um Neon in Aktion zu sehen.
Dies ist die Hauptdemo, bei der Sie sehen können, wie Sie einfache Typen, Datensätze, Klassen, Delphi -spezifische Typen (TStringList, Tdataset usw.) serialisieren/deserialisieren können:

Diese neue Demo versucht, die Standard -TJSON -Serialisierungsmotor mit dem Tneon -Motor zu vergleichen. Mit einigen Änderungen können Sie Tneon mit anderen Serialisierungsmotoren vergleichen:

Umfangreiche Konfiguration über INeonConfiguration -Schnittstelle:
Neon unterstützt die (DE) Serialisierung der meisten Delphi -Standardtypen, Datensätze, Array- und natürlich Klassen. Klassen können komplex sein, wie Sie es möchten, können Array, (generische) Listen, Unterklassen, Aufzeichnung usw. enthalten.
TCustomSerializer und registrieren Sie die neue Serializer -Klasse in der Konfiguration Diese Bibliothek wurde mit Delphi 12 Athens , Delphi 11 Alexandria , Delphi 10.4 Sydney , Delphi 10.3 Rio , Delphi 10.2 Tokio getestet, aber mit einer minimalen Menge an Arbeit sollte sie mit Delphi XE7 und höher kompilieren
Diese Bibliothek hat keine Abhängigkeiten von externen Bibliotheken/Einheiten.
Verwendete Delphi -Einheiten:
Fügen Sie einfach den Quellpfad "Quelle" Ihrem Delphi -Projektpfad hinzu und .. Sie können loslegen!
Der einfachste Weg, um die TNeon -Dienstprogrammklasse zu serialisieren und zu deserialisieren:
Objektserialisierung:
var
LJSON: TJSONValue;
begin
LJSON := TNeon.ObjectToJSON(AObject);
try
Memo1.Lines.Text := TNeon.Print(LJSON, True);
finally
LJSON.Free;
end ;
end ;Objektdeserialisierung:
var
LJSON: TJSONValue;
begin
LJSON := TJSONObject.ParseJSONValue(Memo1.Lines.Text);
try
TNeon.JSONToObject(AObject, LJSON, AConfig);
finally
LJSON.Free;
end ; Verwenden der TNeonSerializerJSON und TNeonDeserializerJSON -Klassen haben Sie mehr Kontrolle über den Prozess.
Objektserialisierung:
var
LJSON: TJSONValue;
LWriter: TNeonSerializerJSON;
begin
LWriter := TNeonSerializerJSON.Create(AConfig);
try
LJSON := LWriter.ObjectToJSON(AObject);
try
Memo1.Lines.Text := TNeon.Print(LJSON, True);
MemoError.Lines.AddStrings(LWriter.Errors);
finally
LJSON.Free;
end ;
finally
LWriter.Free;
end ;
end ;Objektdeserialisierung:
var
LJSON: TJSONValue;
LReader: TNeonDeserializerJSON;
begin
LJSON := TJSONObject.ParseJSONValue(Memo1.Lines.Text);
if not Assigned(LJSON) then
raise Exception.Create( ' Error parsing JSON string ' );
try
LReader := TNeonDeserializerJSON.Create(AConfig);
try
LReader.JSONToObject(AObject, LJSON);
MemoError.Lines.AddStrings(LWriter.Errors);
finally
LReader.Free;
end ;
finally
LJSON.Free;
end ;Es ist sehr einfach, Neon zu konfigurieren,
var
LConfig: INeonConfiguration;
begin
LConfig := TNeonConfiguration.Default
.SetMemberCase(TNeonCase.SnakeCase) // Case settings
.SetMembers(TNeonMembers.Properties) // Member type settings
.SetIgnoreFieldPrefix(True) // F Prefix settings
.SetVisibility([mvPublic, mvPublished]) // Visibility settings
// Custom serializer registration
.GetSerializers.RegisterSerializer(TGUIDSerializer)
;
end ;