为什么在我的JSON输出中出现一堆反斜线

问题描述 投票:0回答:1

我正在尝试使用以下代码将模型数据作为json发送

Views.py

def autocomplete(request):
    model = NewCarModel.objects.only('car_model_new')
    print('model is',model)
   # users_list = list(model)
    posts_serialized = serializers.serialize('json', model)
    print('post is',posts_serialized)

    return JsonResponse(posts_serialized,safe=False)

models.py

class NewCarModel(models.Model):
    car_model_new = models.CharField(max_length=100, unique=True)

    def __str__(self):
        return self.car_model_new

输出:

"[{\"model\": \"core.newcarmodel\", \"pk\": 1, \"fields\": {\"car_model_new\": \"swift\"}}, {\"model\": \"core.newcarmodel\", \"pk\": 2, \"fields\": {\"car_model_new\": \"wagonr\"}}, {\"model\": \"core.newcarmodel\", \"pk\": 3, \"fields\": {\"car_model_new\": \"baleno\"}}, {\"model\": \"core.newcarmodel\", \"pk\": 4, \"fields\": {\"car_model_new\": \"breeza\"}}, {\"model\": \"core.newcarmodel\", \"pk\": 5, \"fields\": {\"car_model_new\": \"spresso\"}}]"

为什么我的JSON输出中存在大量反斜杠,以及如何删除它们,Mozilla Firefox默认的JSON过滤器也无法正常工作,我也无法使用Java脚本从中提取数据(因为我能够从中提取数据一些公共API,因此提取代码没有问题)

python json django django-models
1个回答
0
投票

[我认为序列化程序这样做是为了在将dict对象转换为Json对象的同时将双引号"括起来。可能该dict对象已经具有用相同的双引号"括起来的键或值。因此是反斜线。

要摆脱它,如果使用Python,则必须使用json.loads;否则,如果使用JS,则必须使用JSON.parse

Python:

json.loads(response)

JS:

JSON.parse(data)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.