Skip to content

Releases: paolo-rossi/delphi-neon

Release 3.0.0

02 May 13:56
Compare
Choose a tag to compare

🚀 High level features (since the 2.1.0 release)

  • 🚀 Objects and Items creation through a FactoryClass and the [NeonFactory] and [NeonItemFactory]
  • ✨ New attribute [NeonItemFactory] Now you can decide the (array,list, dictionary) item creation based on the item's JSON values
  • ✨ New attributes: [NeonFactory] Now you can decide the object creation based on the JSON value
  • 🚀 Now it's possible to serialize TBytes fields or properties in Base64 format using the new [NeonFormat] attribute
  • ✨ Added TBytesSerializer custom serializer for TBytes
  • 🚀 Now you can support all kind of formats for any Delphi type using the [NeonFormat] attribute and creating a custom serializer
  • ✨ Support for the KebabCase and ScreamingSnakeCase in INeonConfiguration
  • 🚀 You can now ignore specific members (by name) globally (e.g. Parent, Owner, etc...). New config setting: IgnoreMembers

🛠️ Other features, changes and bugfixes

  • 👍 Extended test coverage
  • 👍 Improved earlier versions compatibility
  • 🐛 Several bug fixed

Release 2.1.0

18 Nov 10:39
Compare
Choose a tag to compare

🚀 High level features (since the 2.0.3 release)

  • 🏛️ Support for Delphi 12 Athens
  • 💥 StrictTypes configuration: allows loose conversions between types (useful when you have an "all string" json to read into a properly typed Delphi object)
  • 💥Support for use of class functions in IncludeIf.CustomFunction parameter to NeonIncludeAttribute. This enables the use of CustomFunction when generating OpenAPI schemas. Thanks to @veikkonurmonen
  • 🚀 Extended Nullables support thanks to @dominikcz
  • 🚀 Improved formatting on floats
  • 🚀 Better management of dates: now it differentiate between TDate, TTime, TDateTime
  • 🏛️ (re)checked compatibility with Delphi XE6

🧰 Other features, changes and bugfixes

  • ➕ Overloaded versions of Print and PrintToStream allowing to pass the TJSONOutputOption parameter
  • ➕ Preserved empty strings in nullable records
  • 🛠️ Refactoring of all conditional defines. Removed VERxxx in favor of HAS_* defines ().
  • 🛠️ Reworked error messages
  • 🪛 Fixed a memory leak for empty List in Dictionary
  • 🪛 Fixed a bug in NeonIncludeIf code

Release 2.0.3

20 Mar 09:36
1359a55
Compare
Choose a tag to compare

✨ High level features (since the 2.0.2 release)

  • ✨ Improved support for Variants serialization/deserialization (thanks to Daniel Jenne)
  • ✨ Improved support for array (static and dynamic) deserializaion

🛠️ Other features, changes and bugfixes

  • 🛠️ Routines for value creation

Paolo.

Release 2.0.2

20 Feb 11:57
Compare
Choose a tag to compare

✨ High level features (since the 2.0.1 release)

🛠️ Other features, changes and bugfixes

  • 🛠️ Changed function names to match Neon attributes

Release 2.0.1

19 Feb 15:52
Compare
Choose a tag to compare

✨ High level features (since the 2.0.0 release)

🛠️ Other features, changes and bugfixes

  • 🛠️ The AutoCreate feature works also when a custom serializer gets called

Release 2.0.0

02 Feb 10:16
Compare
Choose a tag to compare

✨ High level features (since the 1.9.0 release)

  • ✨ Support for [NeonRawValue] attribute (to serialize a property exactly as is, without escaping) useful for embedding pre-serialized JSON
  • ✨ AutoCreate feature (Neon will try to create sub-objects that are nil with a default parameter-less constructor)
  • ✨ Support for [NeonAutoCreate] attribute (to individually control the auto-creation of members)
  • ✨ Added cache mechanism for class/record members
  • ✨ Added Benchmarks project so you can compare Neon's performance against other JSON serializers

🛠️ Other features, changes and bugfixes

  • 🛠️ More tests (for the AutoCreate and RawValue features)
  • 🐛 Fixed MainDemo file path

Release 1.9.0

29 Aug 15:23
Compare
Choose a tag to compare

✨ High level features (since the 1.8.0 release)

  • ✨ Now it's possible to (de)serialilze enums as Integer
  • ✨ Now it's possible to deserialize array of arrays

🛠️ Other features, changes and bugfixes

  • 🛠️ JSONToValue now can accept strings to deserialize
  • 🐛 Restored 10.2 compatibility (custom managed records, ParseJSONValue parameters)

Release 1.8.0

10 Jul 07:42
Compare
Choose a tag to compare

✨ High level features (since the 1.7.0 release)

  • ✨ Support for UInt64 (although Delphi JSON framework has not UInt64 support)
  • 🛠️ Now ReadInteger will check ranges against the exact type.
  • 🛠️ Type and range checking for float types
  • 🛠️ Added ValueToJSONString (overload) to the TNeon class.

🛠️ Other features, changes and bugfixes

  • 🛠️ using a custom serializer (when available) to allocate TValue instead of TRttiUtils.CreateNewValue
  • 🐛 Small fix using Format function
  • 🐛 The RegistryCache is now thread safe (thanks to stalexteam)

Release 1.7.0

04 Nov 10:11
Compare
Choose a tag to compare

💥 High level features (since the 🔖 1.6.1 release)

  • 💥 Added support for Delphi 11 Alexandria
  • 💥 NeonUnwrapped Attribute to unwrap (flatten) a sub-object into the parent object
  • 💥 New TValue custom serializer
  • 💥 New nullables custom serializers

🌟 Other features, changes and bugfixes

  • 🛠️ Fixed Linux compilation error
  • 🛠️ Improved enum support in a JSON Schema

Release 1.6.1

09 Jun 08:13
Compare
Choose a tag to compare

🌟 Other features, changes and bugfixes (since the 🔖 1.6.0 release)

  • 🛠️ Fix: Renamed also the unit name! (Neon.Core.Persistence.JSON.Schema)