【问题标题】:serialize text field to json将文本字段序列化为 json
【发布时间】:2021-05-27 15:13:57
【问题描述】:

我正在使用的第三方应用程序将 json 存储在文本字段中。

我想将这个数据序列化为 json,我只需要能够从这个序列化器中读取,而不是写入它。我不想在前端操作数据,所以我希望它从我的 api 以干净的 json 格式输出。

class SomeSerializer(serializers.ModelSerializer):

    details = serializers.CharField()

    class Meta:
        model = SomeModel
        fields = ( 'id', 'details')

现在这正在返回:

[{"id":"someID",
  "details":"{\"address\": {\"city\": null}"}"}]

我不知道如何在序列化程序中使用 json.loads,这似乎是最干净的选择。

【问题讨论】:

    标签: python json django django-rest-framework


    【解决方案1】:

    您可以使用SerializerMethodField

    import json
    from rest_framework import serializers
    
    
    class SomeSerializer(serializers.ModelSerializer):
    
        details = serializers.SerializerMethodField()
    
        class Meta:
            model = SomeModel
            fields = ('id', 'details')
        
        def get_details(self, obj):
            return json.loads(obj.details)
    

    注意,SerializerMethodField 是read_only,不能写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多