I am using jackson-core, databind, annotations 2.3.3 jars. I have the following simple class
public class ClassA {
    private int value;
    public int getValue() {
        return this.value;
    }
    public void setValue(int value) {
        this.value = value;
    }
}
And here is the code to try to deserialize a JSON string to the object:
import com.fasterxml.jackson.databind.ObjectMapper;
...
final ObjectMapper objectMapper = new ObjectMapper();
ClassA request = objectMapper.readValue("{\"Value\": 1}", ClassA.class);
But I am getting the following error: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Value" (class ClassA), not marked as ignorable (one known property: "value"]) at [Source: java.io.StringReader@3bff5976; line: 1, column: 12] (through reference chain: ClassA["Value"])
If I changed the JSON string to lower case then it worked. I thought Jackson would be able to map the value to the setter by following the setter convention. I understand i could add JsonProperty annotation to ClassA to make it work but I cannot modify ClassA in my situation.
I also tried explicitly enabling the following mapping features before calling readValue, but it still got the same error:
import com.fasterxml.jackson.databind.MapperFeature;
...
objectMapper.enable(MapperFeature.AUTO_DETECT_GETTERS);
objectMapper.enable(MapperFeature.AUTO_DETECT_SETTERS);
How can I have Jackson bind to standard getters/setters (getXxx and setXxx) without specify annotation to the class being bound?
Thanks!

Valueinstead ofvalue. Are your JSON properties going to be capitalized like that?