Django 解决返回JSON,汉字转换为Ascii

Posted 在奋斗的大道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 解决返回JSON,汉字转换为Ascii相关的知识,希望对你有一定的参考价值。

问题描述:Django 返回Json 结果,汉字全部转换为Ascii码

Django 之view.py 功能代码

import json
from django.shortcuts import render
from userSystem.models import Book
from django.http import HttpResponse
from django.core import serializers


# Create your views here.
def select(request):
    books = Book.objects.all()
    for i in range(len(books)):
        print("主键:%s   值:%s" % (i + 1, books[i]))

    return response_success(message='后台响应成功', data_list=serializers.serialize("json", books))


def response_success(message, data=None, data_list=[]):
    return HttpResponse(json.dumps({
        'code': 200,#code由前后端配合指定
        'message': message,#提示信息
        'data': data,#返回单个对象
        'dataList': data_list#返回对象数组
    }), 'application/json')

 解决办法:

1、在django.http 的HttpResponse 构造函数中,设置不启用Ascii 编码。

修改后的核心代码片段

import json
from django.shortcuts import render
from userSystem.models import Book
from django.http import HttpResponse
from django.core import serializers


# Create your views here.
def select(request):
    books = Book.objects.all()
    for i in range(len(books)):
        print("主键:%s   值:%s" % (i + 1, books[i]))

    return response_success(message='后台响应成功', data_list=serializers.serialize("json", books))


def response_success(message, data=None, data_list=[]):
    return HttpResponse(json.dumps({
        'code': 200,#code由前后端配合指定
        'message': message,#提示信息
        'data': data,#返回单个对象
        'dataList': data_list#返回对象数组
    }, ensure_ascii=False), 'application/json')

 效果输出:

 

以上是关于Django 解决返回JSON,汉字转换为Ascii的主要内容,如果未能解决你的问题,请参考以下文章

如何将 django 变量正确转换为模板中的 json

将 django ValuesQuerySet 转换为 json 对象

如何在 Django 中将搜索查询结果转换为 Json 可序列化对象

jmeter返回的参数中汉字怎么总是转换成问号

python 将unicode编码转换为汉字的几种方法

对数组内容使用了json_encode返回汉字内容返回了空值