Extensible JSON serializers and deserializers