Django的活塞。如何序列化为非Model对象的JSON对象?

时间:2012-12-19 17:42:38

标签: json django django-piston

我正在使用django +活塞,到目前为止已经创建了一些在JSON中很好地返回我的django模型的URL。我甚至不必指定发射器,JSON序列化是自动完成的。

现在我需要返回一个不扩展Django Model类的JSON序列化对象。如果我返回它的值,活塞返回__ str __值,即使我添加JSON发射器没有任何反应。我不想在__ str __方法中添加JSON序列化,因为它不正确。 对此有什么正确的解决方法?

1 个答案:

答案 0 :(得分: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,然后将其序列化。