The `as_json` requirement is a little looser than you are thinking :)  It's meant to produce a JSON representation of the object, which includes Ruby objects that have a clear meaning to the JSON encoder, like symbols and times. That's a natural way for an object to represent itself to the JSON encoder, which understands to encode symbol as strings and times as iso8601.