我注意到如果你在django中使用simplejson函数,所有字符串都用单引号括起来,整个json对象字符串用双引号括起来。当我接受这个字符串并将其交给JSON.parse时,它会给我一个错误,因为他们想要使用单引号括起整个对象和字符串的双引号。我可以用javascript替换它们,但是我必须考虑像撇号这样的情况,但我确信有更好的方法。有没有办法让django的simplejson将对象字符串输出为JSON.parse的格式?
更多信息:
django观点:
def view(request):
list = [{"a":"apple",},]
return HttpResponse(simplejson.dumps(str(list)), mimetype="application/json")
javascript字符串结果是什么
" [{' a':' apple'}]"
答案 0 :(得分:4)
更新
移除str()
周围的列表,只需simplejson.dumps(list)
。 str()
将列表转换为字符串,因此您在客户端获得了"[{'a': 'apple'}]"
。
你能否将问题更新为demo,其中simplejson用单引号括起字符串?
通常, django.utils.simplejson
符合w / JSON specification并且不使用单引号来包装内容。如果你的意思是
>>> from django.utils.simplejson import dumps
>>> dumps("Hello")
'"Hello"' # single quotes here
>>> repr(dumps("Hello"))
'\'"Hello"\'' # or here
它们是Python的符号,你不想在JSON.parse中直接使用它们(虽然第一个是正常的)。