
Neon adalah perpustakaan serialisasi untuk Delphi yang membantu Anda mengonversi (bolak -balik) objek dan nilai -nilai lain menjadi JSON. Ini mendukung tipe Delphi sederhana tetapi juga kelas dan catatan yang kompleks. Neon telah dirancang dengan mempertimbangkan istirahat , untuk bertukar data murni antara aplikasi tanpa "metadata" atau bidang tambahan, pada kenyataannya Neon adalah mesin serialisasi JSON default untuk perpustakaan Wirl Rest.
Silakan lihat demo untuk melihat neon beraksi.
Ini adalah demo utama di mana Anda dapat melihat bagaimana Anda dapat membuat serialisasi/deserialize tipe sederhana, catatan, kelas, tipe spesifik Delphi (TStringList, tDataset, dll ...):

Demo baru ini mencoba membandingkan mesin serialisasi TJSON standar dengan mesin tneon, dengan beberapa perubahan Anda dapat membandingkan tneon dengan mesin serialisasi lain di luar sana:

Konfigurasi yang luas melalui antarmuka INeonConfiguration :
Neon mendukung serialisasi (DE) dari sebagian besar tipe standar Delphi, catatan, array, dan tentu saja kelas. Kelas bisa rumit seperti yang Anda inginkan, dapat berisi array, daftar (generik), sub-kelas, catatan, dll ...
TCustomSerializer dan daftarkan kelas serializer baru dalam konfigurasi Perpustakaan ini telah diuji dengan Delphi 12 Athena , Delphi 11 Alexandria , Delphi 10.4 Sydney , Delphi 10.3 Rio , Delphi 10.2 Tokyo , tetapi dengan jumlah pekerjaan minimum yang harus dikompilasi dengan Delphi XE7 dan lebih tinggi
Perpustakaan ini tidak memiliki ketergantungan pada pustaka/unit eksternal.
Unit Delphi digunakan:
Cukup tambahkan jalur sumber "sumber" ke jalur proyek Delphi Anda dan .. Anda baik untuk pergi!
Cara termudah untuk membuat serial dan deserialize adalah dengan menggunakan kelas utilitas TNeon :
Serialisasi objek:
var
LJSON: TJSONValue;
begin
LJSON := TNeon.ObjectToJSON(AObject);
try
Memo1.Lines.Text := TNeon.Print(LJSON, True);
finally
LJSON.Free;
end ;
end ;Deserialisasi objek:
var
LJSON: TJSONValue;
begin
LJSON := TJSONObject.ParseJSONValue(Memo1.Lines.Text);
try
TNeon.JSONToObject(AObject, LJSON, AConfig);
finally
LJSON.Free;
end ; Menggunakan kelas TNeonSerializerJSON dan TNeonDeserializerJSON Anda memiliki lebih banyak kendali atas prosesnya.
Serialisasi objek:
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 ;Deserialisasi objek:
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 ;Sangat mudah untuk mengkonfigurasi neon ,
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 ;