【发布时间】:2015-08-22 02:17:16
【问题描述】:
我的实体:
public class User {
private Integer id;
private String mail;
private boolean enabled;
// getters and setters
}
文件 test.json(来自 REST 网络服务的响应):
{
"_embedded" : {
"users" : [ {
"id" : 1,
"mail" : "admin@admin.com",
"enabled" : true,
"_links" : {
"self" : {
"href" : "http://localhost:8080/api/users/1"
}
}
} ]
}
}
还有我的测试课:
public class TestJson {
private InputStream is;
private ObjectMapper mapper;
@Before
public void before() {
mapper = new ObjectMapper();
mapper.registerModule(new Jackson2HalModule());
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
is = TestJson.class.getResourceAsStream("/test.json");
}
@After
public void after() throws IOException {
is.close();
}
@Test
public void test() throws IOException {
PagedResources<Resource<User>> paged = mapper.readValue(is, new TypeReference<PagedResources<Resource<User>>>() {});
Assert.assertNotNull(paged.getContent().iterator().next().getContent().getId());
}
@Test
public void testResource() throws IOException {
PagedResources<User> paged = mapper.readValue(is, new TypeReference<PagedResources<User>>() {});
Assert.assertNotNull(paged.getContent().iterator().next().getId());
}
}
第二个测试通过但第一个没有通过。我不明白,因为 user 中的 id 属性是唯一缺少的(mail 和 enabled 属性不为空)...
我该怎么做才能修复它?这是 Jackson 或 Spring Jackson2HalModule 中的错误吗?
您可以通过克隆我的 spring-hateoas fork repository 并启动单元测试来重现。
【问题讨论】:
标签: java jackson spring-data-rest spring-hateoas hal