0
指定字段连载为了我有一个名为Test类扩展名为BasicTest另一个类,这个类是象下面这样:我怎么能在杰克逊
public class Test extends BasicTest{
private String name;
private Integer age;
// ... Getter and Setter
}
public class BasicTest{
private String code;
private Long time;
// ... Getter and Setter
}
我用的球衣,以提供RESTful API,因此这里是端点的代码:
@Path("/test")
public class MyEndpoint{
@Get
@Produce(MediaType.APPLICATION_JSON)
public Test myTest(){
Test test = new Test();
test.setName("Chris");
test.setAge(29);
test.setCode("200");
test.setTime(100)
return test;
}
}
我期待什么反应是:
{
"name": "Chris",
"age": 28,
"code": "200",
"time": 100
}
但我得到:
{
"code":"200",
"time":100,
"name":"Chris",
"age":28
}
我的杰克逊对象映射提供程序配置为:
public class ObjectMapperProvider implements ContextResolver<ObjectMapper> {
final ObjectMapper defaultObjectMapper;
public ObjectMapperProvider() {
defaultObjectMapper = createDefaultMapper();
}
@Override
public ObjectMapper getContext(Class<?> type) {
return defaultObjectMapper;
}
private static ObjectMapper createDefaultMapper() {
final ObjectMapper result = new ObjectMapper();
//enable
result.enable(SerializationFeature.INDENT_OUTPUT);
//disable
result.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
result.disable(SerializationFeature.WRITE_NULL_MAP_VALUES);
result.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
//include
result.setSerializationInclusion(JsonInclude.Include.NON_NULL);
result.configure(MapperFeature.USE_ANNOTATIONS, true);
//Naming
result.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
return result;
}
}
希望有人能够帮助检查这一点,我怎样才能得到我预期的反应,真的很感谢:)
谢谢您的回答,这就是我做测试的例子中,真正的代码我有很多的类来扩展BasicTest类,我想用@JsonPropertyOrder每个类是不是很优美,任何想法,我可以做到这一点更合理? –