bjson 模块

模块:borax.serialize.bjson

bjson 模块实现了一个自定义的 JSONEncoder ,支持通过 __json__ 方法 encode 自定义对象。

例子:

  1. import json
  2. from borax.serialize import bjson
  3. class Point:
  4. def __init__(self, x, y):
  5. self.x = x
  6. self.y = y
  7. def __json__(self):
  8. return [self.x, self.y]
  9. obj = {'point': Point(1, 2)}
  10. output = json.dumps(obj, cls=bjson.BJSONEncoder)
  11. print(output)

输出结果:

  1. {"point": [1, 2]}

bjson 还提供了类似的 dumps / dump 方法,默认使用 BJSONEncoder

例如:

  1. json.dumps(obj, cls=bjson.BJSONEncoder)

可以简化为:

  1. bjson.dumps(obj)