使用静态工厂/解析器方法的Jackson JSON反序列化



我需要反序列化如下内容(来自JSON输入):

class Container {
M1 first;
M2 second;
}

问题是我无法控制M1和M2,但这些类提供了一些方法:M1. fromjson(字符串输入)返回M1对象和M2. fromjson(字符串输入)返回M2对象。我想使用这些方法。

我怎样才能做到这一点?

您可以将字符串反序列化为Map<String, Map>,然后手动调用M1.fromJsonM2.fromJson来构建Container,如下所示:

// You can use any json deserializer that you like insteaf of faster jackson
Map<String, Map> map = objectMapper.readValue(json);
Container container = new Container();
container.setFirst(M1.fromJson(map.get("m1")));
container.setSecond(M2.fromJson(map.get("m2")));
... // Use container as needed

最新更新