gpt4 book ai didi

python - 嵌套类的 JSON(反)序列化

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:03 25 4
gpt4 key购买 nike

X 是一个具有 3 个字段的简单类:

class X():
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c

X 的 JSON 编码器/解码器:

class XEncoder(json.JSONEncoder):
def encode(self, obj):
return super(XEncoder, self).encode({
'a': obj.a,
'b': obj.b,
'c': obj.c
})

class XDecoder(json.JSONDecoder):
def decode(self, json_string):
obj = super(XDecoder, self).decode(json_string)
return X(obj['a'], obj['b'], obj['c'])

Y 类,其中 X 作为字段内字典的值:

class Y():
def __init__(self):
self.m = {}

def add(self, a, x):
self.m[a] = x

Y 的 JSON 编码器/解码器看起来如何?

最佳答案

class YEncoder(json.JSONEncoder):
def encode(self, obj):
return json.dumps({ 'm': json.dumps({ k: json.dumps(v, cls=XEncoder) for k, v in obj.m.items()})})

class YDecoder(json.JSONDecoder):
def decode(self, json_string):
y.m = {k: json.loads(v, cls=XDecoder) for k, v in json.loads(json.loads(json_string)['m']).items()}
return y

关于python - 嵌套类的 JSON(反)序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17838329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com