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
実装に到達する前にエンコーダーが文字列エンコーディングを処理すると想定しています。
どうすればこれを達成できますか?