move asserts into Json_ThrowError.  create a separate Json_StringLiteral that can be used for names and values.  group serializer and deserializer code.