我们可以像Jackson中的对象映射器那样将json响应映射到python对象吗?

2024-04-23 09:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,尝试将json响应映射到python对象,就像我们使用jackson库在Java中所做的那样,这样我们就可以使用Java对象了

示例json:-

{
    "name":"John",
    "age": 31,
    "city": "New York"
}

类来映射这些参数

class PersonDetails:
    name: str
    age: int
    city: str

    def __init__(self, name: str, age: int, city: str) -> None:
        self.name = name
        self.age = age
        self.city = city
        
     def get_age(self):
        return self.age
        
     def set_age(self, age):
        self.age = age
        
     def get_name(self):
        return self.name
        
     def set_name(self, name):
        self.name = name

     def get_city(self):
        return self.city
        
     def set_city(self, city):
        self.city = city

并希望将json映射到这个personDetails类

下面的代码是用来解析json的,我在jsonConverted变量中获取值,但我想使用PersonDetails类,这样我就可以使用getter和setter获取值,就像在Java中使用jackson库一样

responseData= json.dumps(response.json())
jsonConverted= json.loads(responseData, object_hook=lambda d: SimpleNamespace(**d))
print(jsonConverted.name, jsonConverted.age, jsonConverted.city)

有可能吗