我需要反序列化如下内容(来自JSON输入):
class Container {
M1 first;
M2 second;
}
问题是我无法控制M1和M2,但这些类提供了一些方法:M1. fromjson(字符串输入)返回M1对象和M2. fromjson(字符串输入)返回M2对象。我想使用这些方法。
我怎样才能做到这一点?
您可以将字符串反序列化为Map<String, Map>
,然后手动调用M1.fromJson
和M2.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