在发送 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
实现之前处理它。
我怎样才能做到这一点?