gpt4 book ai didi

java - 使用 jackson 从改造中反序列化 json,其中相同的变量名可以代表两个不同的对象

转载 作者:太空狗 更新时间:2023-10-29 13:10:41 25 4
gpt4 key购买 nike

retrofit2 的响应可能是以下类型。(我们事先不知道会是哪种响应)

{
"id": "abc",
"place": "LA",
"driverId": "abbabaaan"
}

{
"id": "abc",
"place": "LA",
"driverId": {
"name": "xyz",
"id": "jygsdsah",
"car": "merc"
}
}

有什么方法可以定义一个类,以便在反序列化时 jackson 将检查“driverId”对象的类型并将其分配给类中的“driverIdObj”字段或“driverIdStr”字段。

最佳答案

您可以反序列化为 map 。之后,您可以检查 map 并决定将 map 转换为两种类型中的哪一种。看看这个答案:Deserializing JSON based on object type

要从 Map 转换为 Object,您可以使用 ObjectMapper::convertValue,例如

 mapper.convertValue(map, Response1.class)

关于java - 使用 jackson 从改造中反序列化 json,其中相同的变量名可以代表两个不同的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41462409/

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