class Marten::DB::Field::JSON
- Marten::DB::Field::JSON
- Marten::DB::Field::Base
- Reference
- Object
Overview
Represent's a JSON field.
JSON model fields allow to automatically parse JSON columns and expose the corresponding JSON::Any
object,
which is the default behavior:
class MyModel < Marten::Model
# Other fields...
field :metadata, :json
end
It should be noted that it is also possible to specify a serializable
option in order to specify a class that
makes use of JSON::Serializable
. When doing so, the parsing of the JSON values will result in the
initialization of the corresponding serializable objects:
class MySerializable
include JSON::Serializable
property a : Int32 | Nil
property b : String | Nil
end
class MyModel < Marten::Model
# Other fields...
field :metadata, :json, serializable: MySerializable
end
Defined in:
marten/db/field.crmarten/db/field/json.cr
Constructors
Instance Method Summary
-
#default : JSON::Any | JSON::Serializable | Nil
Returns the default value of the field if any.
-
#from_db(value) : ::String | Nil
Converts the raw DB value to the corresponding field value.
-
#from_db_result_set(result_set : ::DB::ResultSet) : ::String | Nil
Extracts the field value from a DB result set and returns the right object corresponding to this value.
-
#to_column : Management::Column::Base | Nil
Returns a migration column object corresponding to the field at hand.
-
#to_db(value) : ::DB::Any
Converts the field value to the corresponding DB value.
Instance methods inherited from class Marten::DB::Field::Base
blank? : Bool
blank?,
db_column
db_column,
db_column! : ::String
db_column!,
db_column?
db_column?,
default
default,
empty_value?(value) : ::Bool
empty_value?,
from_db(value)
from_db,
from_db_result_set(result_set : ::DB::ResultSet)
from_db_result_set,
getter_value?(value) : ::Bool
getter_value?,
id : String
id,
index? : Bool
index?,
null? : Bool
null?,
prepare_save(record, new_record = false)
prepare_save,
primary_key? : Bool
primary_key?,
related_model
related_model,
relation?
relation?,
relation_name
relation_name,
to_column : Management::Column::Base | Nil
to_column,
to_db(value) : ::DB::Any
to_db,
truthy_value?(value)
truthy_value?,
unique? : Bool
unique?,
validate(record, value)
validate
Constructor methods inherited from class Marten::DB::Field::Base
new(id : ::String, primary_key : ::Bool = false, blank : ::Bool = false, null : ::Bool = false, unique : ::Bool = false, index : ::Bool = false, db_column : ::String | Symbol | Nil = nil)
new
Constructor Detail
Instance Method Detail
Returns the default value of the field if any.
Converts the raw DB value to the corresponding field value.
Extracts the field value from a DB result set and returns the right object corresponding to this value.
Returns a migration column object corresponding to the field at hand.
Converts the field value to the corresponding DB value.