annotation CrSerializer::Annotations::PreSerialize

Overview

Defines a callback method(s) that are ran directly before the object is serialized.

@[CRS::ExclusionPolicy(:all)]
class Example
  include CrSerializer

  def initialize; end

  @[CRS::Expose]
  private getter name : String?

  property first_name : String = "Jon"
  property last_name : String = "Snow"

  @[CRS::PreSerialize]
  def pre_ser : Nil
    @name = "#{first_name} #{last_name}"
  end

  @[CRS::PostSerialize]
  def post_ser : Nil
    @name = nil
  end
end

Example.new.to_json # => {"name":"Jon Snow"}

Defined in:

annotations.cr