Skip to content

annotation Athena::Serializer::Annotations::Exclude #

Indicates that a property should not be serialized/deserialized when used with :none ASRA::ExclusionPolicy.

Also see, ASRA::IgnoreOnDeserialize and ASRA::IgnoreOnSerialize.

Example#

@[ASRA::ExclusionPolicy(:none)]
class Example
  include ASR::Serializable

  def initialize; end

  property name : String = "Jim"

  @[ASRA::Exclude]
  property password : String = "monkey"
end

ASR.serializer.serialize Example.new, :json                                          # => {"name":"Jim"}
ASR.serializer.deserialize Example, %({"name":"Jim","password":"password1!"}), :json # => #<Example:0x7f6eec4b6a60 @name="Jim", @password="monkey">

NOTE: On deserialization, the excluded property must be nilable, or have a default value.