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每個類是不是很優美,任何想法,我可以做到這一點更合理? –