基本上,我正在尝试与其他一些发送具有以下形状的有效载荷的服务集成
{
"storeId":"123",
"type": "...",
"data": ...,
"createdAt": "...."
}
除了属性data
之外,该形状从未改变,其结构取决于属性type
。
杰克逊怎么能做到这一点?
- 使用
JsonNode
将字符串节点转换为json节点JsonNode node = mapper.valueToTree(fromValue);
- 然后使用
JsonNode dataNode = node.get("data")
获取节点,类型相同 - 使用
Class yourBeanClass = Class.forName("package.+type from step 2");
从类型节点获取类 - 使用
JsonParser parser = mapper.treeAsTokens(dataNode);
标记数据节点 - 最后通过执行
YourBean bean = mapper.readValue(parser, yourBeanClass);
获得您的bean实例