【发布时间】:2020-08-20 09:15:14
【问题描述】:
我正在处理传入的 JSON 字符串,并希望使用 GSON 将它们反序列化为类型化的 POJO 对象。 然而,推送字符串的服务器可以发送不同类型的对象 - 尽管类型是在 JSON 有效负载中定义的。
所以看看下面两个 JSON 字符串,其中我有一个 tradeEvent 和一个 errorEvent 对象(还有 5 种其他类型,如结算事件、支付事件等)。
我如何将其反序列化为 GSON 中的实际 POJO(可能使用泛型),因为直到运行时我才知道类型 - 正如您所见,第二级元素包含实际的对象类型(tradeEvent、errorEvent 等)。
还应该添加 - 就 POJO 而言,我是将第二个元素(即 tradeEvent、errorEvent)表示为对象还是字符串?
{
"data": {
"tradeEvent": {
"tradeId": "2d28d464-a746-4c58-b19f-b586d2f5d015",
"status": 2,
"eventDescription": "Trade Settled"
}
}
}
{
"data": {
"errorEvent": {
"Uuid": "3a36ae26-ba41-40d5-b11d-d8d842eb2356",
"failureCode": 2, "tradeId": "2d28d464-a746-4c58-b19f-b586d2f5d015", "errorMessage": "Returned error: Exception while processing transaction: trade not matched"
}
}
}
感谢您的指导。
【问题讨论】: