Provides formats and helpers.
Provides the streaming formats for numbers, String, and Symbol.
Provides all the predefined JsonFormats.
Exception thrown while reading JSON.
Provides the streaming JSON deserialization and serialization for type T.
JSON parser with pull semantics.
JSON parser with pull semantics. Borrows heavily from the main JsonParser by Mathias Doenitz. Public methods will throw DeserializationException if the expected value isn't next in the input.
Printer used for streaming.
Provides the streaming JSON deserialization for type T, using the JsonParser.
Provides the streaming JSON deserialization for type T, using the JsonParser.
Provides the streaming JSON serialization for type T.
Provides the streaming JSON serialization for type T.
Lazy wrapper around serialization, for serializing recursive class hierarchies.
Lazy wrapper around serialization, for serializing recursive class hierarchies. This is because in a recursive structure, need the format to exist before you can construct it.
This trait supplies an alternative rendering mode for optional case class members.
This trait supplies an alternative rendering mode for optional case class members. Normally
optional members that are undefined (None
) are not rendered at all. By mixing in this trait
into your custom JsonProtocol you can enforce the rendering of undefined members as null
.
(Note that this only affect JSON writing, reming will always read missing optional members
as well as null
optional members as None
.)
Exception thrown while writing JSON.
Provides formats for Option, Either, and Tuple{1-7}.
Provides formats for Option, Either, and Tuple{1-7}. Option reads 'null' as None, Some otherwise. 'Either' serializes a two-element array, with the first element being 0 for Left, 1 for Right. Tuple1 serializes as a direct literal, while Tuple{2-7} serialize as arrays.
Implicit conversions to make serializing and deserializing simpler.
Provides the streaming formats for numbers, String, and Symbol. Note that the number readers are non-strict in that they will happily round floating-point numbers to Integers.