Java 对象映射程序限制

Java 对象映射程序限制,java,objectmapper,Java,Objectmapper,ObjectMapper是否应该与只有私有成员、没有构造函数和没有getter/setter的类一起工作 我试过这个,但它不能解决问题 mapper.setVisibility(JsonMethod.FIELD, JsonAutoDetect.Visibility.ANY); 一个类总是有一个构造函数。你的意思是它只有默认的构造函数吗?可能是@chrylis的重复,是的,这就是我的意思。谢谢你的来信谢谢你的来信。但我使用的是org.codehaus.jackson.map.ObjectMap

ObjectMapper是否应该与只有私有成员、没有构造函数和没有getter/setter的类一起工作

我试过这个,但它不能解决问题

mapper.setVisibility(JsonMethod.FIELD, JsonAutoDetect.Visibility.ANY);


一个类总是有一个构造函数。你的意思是它只有默认的构造函数吗?可能是@chrylis的重复,是的,这就是我的意思。谢谢你的来信谢谢你的来信。但我使用的是org.codehaus.jackson.map.ObjectMapper,它是com.fasterxml.jackson.core的旧版本。我看不到在旧版本中设置PropertyAccessor的选项:(想法?我也不知道是谁否决了你的答案。我的代码示例是针对Jackson 2.x的。Jackson 1.x不再被维护。切换是否可行?不,这是一个很大的代码库,有100多个依赖项使用1.x:(你可以在你的类路径上同时使用Jackson 1.x和2.x jar,因为它们使用不同的包名。
static class MyDtoAccessLevel {
    private String stringValue = "hidden";
}

public static void main(String[] args) throws JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
    MyDtoAccessLevel dtoObject = new MyDtoAccessLevel();
    System.out.println(mapper.writeValueAsString(dtoObject));
    //prints {"stringValue":"hidden"}
}