annotation Athena::Serializer::Annotations::Expose
Overview
Indicates that a property should be serialized/deserialized when used with :all
ASRA::ExclusionPolicy
.
Also see, ASRA::IgnoreOnDeserialize
and ASRA::IgnoreOnSerialize
.
Example
@[ASRA::ExclusionPolicy(:all)]
class Example
include ASR::Serializable
def initialize; end
@[ASRA::Expose]
property name : String = "Jim"
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">
!!!warning On deserialization, the excluded properties must be nilable, or have a default value.