Module | Sequel::Plugins::JsonSerializer::InstanceMethods
In: | lib/sequel/plugins/json_serializer.rb

### Methods

from_json to_json

### Public Instance methods

from_json(json)

Parse the provided JSON, which should return a hash, and call `set` with that hash.

[Source]

         # File lib/sequel/plugins/json_serializer.rb, line 137
    137:         def from_json(json)
    138:           set(JSON.parse(json))
    139:         end

to_json(*a)

Return a string in JSON format. Accepts the following options:

:except : | Symbol or Array of Symbols of columns not to include in the JSON output.
:include : | Symbol, Array of Symbols, or a Hash with Symbol keys and Hash values specifying associations or other non-column attributes to include in the JSON output. Using a nested hash, you can pass options to associations to affect the JSON used for associated objects.
:naked : | Not to add the JSON.create_id key to the JSON output hash, so when the JSON is parsed, it will yield a hash instead of a model object.
:only : | Symbol or Array of Symbols of columns to only include in the JSON output, ignoring all other columns.
:root : | Qualify the JSON with the name of the object. Implies :naked since the object name is explicit.

[Source]

         # File lib/sequel/plugins/json_serializer.rb, line 160
    160:         def to_json(*a)
    161:           if opts = a.first.is_a?(Hash)
    162:             opts = model.json_serializer_opts.merge(a.first)
    163:             a = []
    164:           else
    165:             opts = model.json_serializer_opts
    166:           end
    167:           vals = values
    168:           cols = if only = opts[:only]
    169:             Array(only)
    170:           else
    171:             vals.keys - Array(opts[:except])
    172:           end
    173:           h = (JSON.create_id && !opts[:naked] && !opts[:root]) ? {JSON.create_id=>model.name} : {}
    174:           cols.each{|c| h[c.to_s] = vals[c]}
    175:           if inc = opts[:include]
    176:             if inc.is_a?(Hash)
    177:               inc.each do |k, v|
    178:                 v = v.empty? ? [] : [v]
    179:                 h[k.to_s] = case objs = send(k)
    180:                 when Array
    181:                   objs.map{|obj| Literal.new(obj.to_json(*v))}
    182:                 else
    183:                   Literal.new(objs.to_json(*v))
    184:                 end
    185:               end
    186:             else
    187:               Array(inc).each{|c| h[c.to_s] = send(c)}
    188:             end
    189:           end
    190:           h = {model.send(:underscore, model.to_s) => h} if opts[:root]
    191:           h.to_json(*a)
    192:         end

[Validate]