我在Django REST框架中有一个序列化器,定义如下:
class QuestionSerializer(serializers.Serializer):
id = serializers.CharField()
question_text = QuestionTextSerializer()
topic = TopicSerializer()
现在,我有两个使用上述序列化器的API视图:
class QuestionWithTopicView(generics.RetrieveAPIView):
# I wish to include all three fields - id, question_text
# and topic in this API.
serializer_class = QuestionSerializer
class QuestionWithoutTopicView(generics.RetrieveAPIView):
# I want to exclude topic in this API.
serializer_class = ExamHistorySerializer
一种解决方案是编写两个不同的序列化器。但是必须有一个更简单的解决方案,以有条件地从给定的序列化器中排除字段。
你尝试过这种技术
class QuestionSerializer(serializers.Serializer):
def __init__(self, *args, **kwargs):
remove_fields = kwargs.pop('remove_fields', None)
super(QuestionSerializer, self).__init__(*args, **kwargs)
if remove_fields:
# for multiple fields in a list
for field_name in remove_fields:
self.fields.pop(field_name)
class QuestionWithoutTopicView(generics.RetrieveAPIView):
serializer_class = QuestionSerializer(remove_fields=['field_to_remove1' 'field_to_remove2'])
如果没有,请尝试一下。
主要内容:使用excludeFieldsWithModifiers()方法,使用@Expose注解默认情况下,GSON排除序列化/反序列化过程中的瞬态和静态字段。 我们来看看下面的例子。 示例 创建一个名为的Java类文件:GsonTester.java - 执行上面示例代码,得到以下结果 - 使用excludeFieldsWithModifiers()方法 GsonBuilder使用序列化/反序列化过程中的方法提供对使用特定修饰符排除字段的控制。 看下面的例子。 示例 创建一个名为的Java
我有一个引用泛型关系的模型,我想以详细的方式序列化它。 我希望ToSeriize视图集的列表方法的JSON看起来像: 有没有办法让ToSeriize对象的视图集的序列化器基于content_type/object_id产生“条件字段”来实现这种效果?
如果发生错误,数据栏将是这样的字符串: 如果成功,数据字段将是一个对象: 我使用以下Kotlin代码对其进行反序列化: 模型定义如下: 当没有错误发生时,上面的代码工作正常。但是当错误发生时,会引发异常: 有没有办法将字段反序列化为对象或任何对象,并通过代码手动确定其类型?
问题内容: 我有一个包含a 和a的类。现在,我想使用gson序列化对象,但排除该字段。 如您所见,我已经尝试使用,但是似乎没有任何作用。另外,我已经将该字段设置为私有,因为我认为这会“覆盖” 但运行以下代码: 仍然会导致以下文件内容没有错误: 那我在做什么错?我现在一无所知,并且希望得到任何帮助,因为这似乎行不通。 提前致谢。 问题答案: 为了获得此结果,您需要使用注释所有字段: 并将Gson配置
问题内容: 我有一个包含以下详细信息的列表: 现在,我想对该列表进行排序,以使这些值按以下顺序排列: 显然,这样做并不能给出正确的答案-它给出了: 我假设这是因为python直接将所有这些都视为字符串。但是,我想根据它们的数值FIRST对它们进行排序,然后根据数字后面的字符对它们进行排序。 我该如何进行? 非常感谢 :) 问题答案: 您想使用 自然排序 : 用法示例: 通过将元素拆分为多个列表以分
默认情况下,GSON从序列化/反序列化过程中排除瞬态和静态字段。 我们来看看下面的例子。 例子 (Example) 在C:\“GSON_WORKSPACE中创建名为GsonTester的Java类文件。 File: GsonTester.java import com.google.gson.Gson; import com.google.gson.GsonBuilder; public c