Django中的json单引号和双引号问题?

3
我注意到如果你在Django中使用simplejson函数,所有的字符串都用单引号括起来,整个json对象字符串则用双引号括起来。当我将此字符串传递给JSON.parse时,会出现错误,因为它们想要使用单引号来括起整个对象,而对于字符串则使用双引号。我可以使用JavaScript的replace方法进行替换,但是那样的话,我就必须考虑到类似撇号之类的情况,但我相信有更好的方法。是否有办法让Django的simplejson输出对象字符串以符合JSON.parse的格式?
更多信息:
Django视图:
def view(request):
    list = [{"a":"apple",},]
    return HttpResponse(simplejson.dumps(str(list)), mimetype="application/json")

JavaScript字符串的结果是什么?

"[{'a': 'apple'}]"

1个回答

5

更新 去掉列表周围的str(),只需使用simplejson.dumps(list)str()将列表转换为字符串,因此您在客户端得到"[{'a': 'apple'}]"

您能否更新问题以演示simplejson将字符串用单引号括起来的位置?

django.utils.simplejson通常符合JSON规范,不使用单引号来包裹内容。 如果您的意思是

>>> from django.utils.simplejson import dumps
>>> dumps("Hello")
'"Hello"' # single quotes here
>>> repr(dumps("Hello"))
'\'"Hello"\'' # or here

这些是Python的注释,你不想直接在JSON.parse中使用它们(第一个是可以的)。


2
更多信息已添加,另外我喜欢你的用户图片。 - Derek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接