Java 如何使ReaderForUpdate.readValue()不重写非空值?

Java 如何使ReaderForUpdate.readValue()不重写非空值?,java,json,jackson,Java,Json,Jackson,我有以下两门课: public class Simple { String a; String b; SubSimple subSimple; } public class SubSimple { String a; String b; } 我可以对以下objectMapper进行哪些更改,以使非null值不会更新为null: Simple simple = new Simple(); simple.setA(&qu

我有以下两门课:

public class Simple {

    String a;
    String b;
    SubSimple subSimple;
}

public class SubSimple {

    String a;
    String b;
}
我可以对以下objectMapper进行哪些更改,以使非null值不会更新为null:

        Simple simple = new Simple();
        simple.setA("0a");
        simple.setSubSimple(new SubSimple());
        simple.getSubSimple().setA("00a");

        String json = "{\"b\" : \"b\", \"subSimple\" : {\"b\" : \"b\"}}";
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);


        simple = objectMapper.readerForUpdating(simple).readValue(json);

        System.out.println("simple : " + simple);
电流输出:

简单:简单{a='0a',b='b',subSimple=subSimple{a='null',b='b'}

所需:

简单:简单{a='0a',b='b',subSimple=subSimple{a='00a',b='b'}


尝试使用
com.fasterxml.jackson.annotation.JsonMerge
annotation:

class Simple {

    String a;
    String b;

    @JsonMerge
    SubSimple subSimple;
}
或者在
com.fasterxml.jackson.databind.ObjectMapper
实例上启用它:

objectMapper.setDefaultMergeable(Boolean.TRUE);