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
endIt 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
endDefined 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.