JSON を送信するときに、文字列フィールド内の HTML 文字をエスケープ解除する便利な方法が必要です。カスタムjson.JSONEncoderを書くとうまくいくと思いました。私のエンコーダは次のようになります。
import jinja2, json
class EscapingJSONEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, basestring):
obj = jinja2.Markup(obj).unescape()
return json.JSONEncoder.default(self, obj)
内部にデバッグステートメントを配置しましたdefaultが、表示されなかったので、カスタムdefault実装に到達する前にエンコーダーが文字列エンコーディングを処理すると想定しています。
どうすればこれを達成できますか?