以下是一个使用Python中的json模块进行ADT JSON序列化和反序列化的示例代码:
import json
# 定义一个简单的ADT类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 定义一个ADT对象
person = Person("Alice", 25)
# 对象序列化为JSON字符串
json_str = json.dumps(person.__dict__)
print(json_str) # 输出:{"name": "Alice", "age": 25}
# JSON字符串反序列化为对象
json_dict = json.loads(json_str)
person_obj = Person(**json_dict)
print(person_obj.name) # 输出:Alice
print(person_obj.age) # 输出:25
在上述示例中,我们首先定义了一个简单的ADT类Person
,并创建了一个Person
对象person
。然后,我们使用json.dumps()
方法将person
对象序列化为一个JSON字符串json_str
。接下来,我们使用json.loads()
方法将json_str
反序列化为一个字典json_dict
,然后使用该字典创建了一个新的Person
对象person_obj
。
注意,为了使json.dumps()
方法正常工作,我们需要将person
对象转换为一个字典,使用person.__dict__
可以获取对象的所有属性和值,并返回一个字典。在反序列化时,我们使用了**json_dict
语法将字典中的键值对作为关键字参数传递给Person
类的构造函数,以创建新的Person
对象。
这个示例演示了如何使用json模块对ADT进行序列化和反序列化,你可以根据自己的需求进行相应的修改和扩展。