Custom mode¶ ↑
The :custom
mode is the most configurable mode and honors
almost all options. It provides the most flexibility although it can not be
configured to be exactly like any of the other modes. Each mode has some
special aspect that makes it unique. For example, the :object
mode has it's own unique format for object dumping and loading. The
:compat
mode mimic the json gem including methods called for
encoding and inconsistencies between JSON.dump()
,
JSON.generate()
, and JSON()
.
The :custom
mode is the default mode. It can be configured
either by passing options to the Oj.dump()
and
Oj.load()
methods or by modifying the default options.
The ability to create objects from JSON object
elements is supported and considers the :create_additions
option. Special treatment is given to the :create_id
though.
If the :create_id
is set to "^o"
then
the Oj internal encoding and decoding is used.
These are more efficient than calling out to a to_json
method
or create_json
method on the classes. Those method do not have
to exist for the "^o"
behavior to be utilized. Any
other :create_id
value behaves similar to the json gem by
calling to_json
and create_json
as appropriate.