Default implementation will write type prefix, call regular serialization
method (since assumption is that value itself does not need JSON
Array or Object start/end markers), and then write type suffix.
This should work for most cases; some sub-classes may want to
change this behavior.