2

我正在使用 django + 活塞,到目前为止,我创建了一些 url,它们可以很好地以 JSON 格式返回我的 django 模型。我什至不必指定发射器,JSON 序列化是自动完成的。

现在我需要返回一个不扩展 Django Model 类的 JSON 序列化对象。如果我返回它的值,活塞会返回 __str __ 值,即使我添加 JSON 发射器也不会发生任何事情。我不想在 __ str __ 方法中添加 JSON 序列化,因为它不正确。什么是正确的方法?

4

1 回答 1

1

您可以使用 python 的json包来执行此操作。

片段:

>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'

如果您希望在 django 视图的上下文中创建它,您需要确保发送回正确的内容类型。那是,

from django.http import HttpResponse
return HttpResponse(your_json_string, mimetype='application/json')

请注意,这不一定适用于所有类型。通常构造一个dict包含您想要返回的内容的对象,然后对其进行序列化是一个好主意。

于 2012-12-19T22:49:56.923 回答