之前写 py 关于 JSON 的序列化都是用字典来操作,比较不方便,今儿实现下 json->object 的序列化方式,发现还挺方便,分享给大家。py 菜鸟,大佬轻喷。。。使用方法如下:

核心类:

class JsonClass(object):
def to_json_string(self):
return json.dumps(self, default=lambda obj: obj.__dict__)
def from_json_string(self, json_string):
data = json.loads(json_string)
for key in self.__dict__.keys():
setattr(self, key, data[key])

使用方法:

class Task(JsonClass):
def __int__(self, id=None, name=None, timestamp=None):
self.id = id
self.name = name
self.timestamp = timestamp
if __name__ == '__main__':

# 序列化

task = Task(1, "a", time.time())
print(task.to_json_string())

# 反序列化

json_string = '{"timestamp": 1560948789.5293133, "name": "a", "id": 1}'
task = Task()
task.from_json_string(json_string)