2

私はdjango+ピストンを使用しており、これまでのところ、JSONでdjangoモデルを非常にうまく返すいくつかのURLを作成しました。エミッターを指定する必要すらありませんでした。JSONのシリアル化は自動的に行われます。

次に、DjangoModelクラスを拡張しないJSONシリアル化オブジェクトを返す必要があります。その値を返すと、JSONエミッターを追加しても、ピストンは__str__値を返します。__ 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 に答える