简体   繁体   English

JAVA:如何 Map JSON 键值对到不同的变量 Z7930C951E609E461E82Z26004

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM