在一个对象中序列化相同类型的对象可以通过以下步骤实现:
以下是一个示例代码,演示如何在一个对象中序列化相同类型的对象(使用JSON格式):
import json
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
self.friends = []
def add_friend(self, friend):
self.friends.append(friend)
def to_json(self):
data = {
'name': self.name,
'age': self.age,
'friends': [friend.to_json() for friend in self.friends]
}
return json.dumps(data)
@staticmethod
def from_json(json_str):
data = json.loads(json_str)
person = Person(data['name'], data['age'])
for friend_data in data['friends']:
friend = Person.from_json(json.dumps(friend_data))
person.add_friend(friend)
return person
# 创建对象
person1 = Person('Alice', 25)
person2 = Person('Bob', 30)
person3 = Person('Charlie', 35)
# 添加朋友关系
person1.add_friend(person2)
person1.add_friend(person3)
# 序列化对象
json_str = person1.to_json()
print(json_str)
# 反序列化对象
person = Person.from_json(json_str)
print(person.name)
print(person.age)
for friend in person.friends:
print(friend.name, friend.age)
在上述示例中,Person类表示一个人,包含姓名、年龄和朋友列表。通过to_json方法将Person对象转换为JSON格式的字符串,其中包含了朋友列表的序列化数据。通过from_json方法将JSON格式的字符串转换为Person对象,并恢复朋友关系。
领取专属 10元无门槛券
手把手带您无忧上云