[英]JAVA : How Map JSON key value pair to different variables Jackson
How to map the following json to a classB object using Jackson如何使用 Z7930C951E609E461E85226004ED919 将 map 以下 json 转换为 B 类 object
JSON Input JSON 输入
{"pattern":3,"graphs":4}
Class A Class A
class ClassA{
String name;
int count;
}
Class B Class B
class ClassB{
Set<ClassA> data;
}
Assuming you have a constructor in ClassA
as follows:假设您在ClassA
中有一个构造函数,如下所示:
class ClassA {
String name;
int count;
public ClassA(String name, int count) {
this.name = name;
this.count = count;
}
}
You can use @JsonCreator
to fine tune the constructor or factory method used in the deserialization as follows:您可以使用@JsonCreator
微调反序列化中使用的构造函数或工厂方法,如下所示:
class ClassB {
Set<ClassA> data;
@JsonCreator
public ClassB(Map<String, Integer> data){
this.data = data.entrySet().stream()
.map(entry -> new ClassA(entry.getKey(), entry.getValue()))
.collect(Collectors.toSet());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.