我正在关注Android this tutorial for Android REST客户端,但我使用自己的REST HATEOAS服务而不是使用问候服务,该服务以这种格式返回HAL + JSON:
"name" : "new task",
"description" : "this is new task",
"_links" : {
"self" : {
"href" : "http://test/tasks/1"
},
"item" : {
"href" : "http://test/tasks/1/item"
},
}
我在运行时收到此错误:
Could not read JSON: Unrecognized field "_links"
(class com.test.mobile.model.Task), not marked as ignorable
(3 known properties: "name", "item", "description"])
在MainActivity的这一行:
Task task = restTemplate.getForObject(url, Task.class);
我会复制/粘贴所有代码,但它与教程中的代码相同,只不过它有两个类而不是问候语:
public class Task {
private String name;
private String description;
private Item item;
public Task() {
}
/*getters and setters*/
}
public class Item {
private String name;
private Set<Task> tasks = new HashSet<Task>(0);
public Item() {
}
/*getters and setters*/
}
我正在寻找一些使用HATEOAS的教程或代码,但没有发现任何相关性。
如何修改spring的代码才能解析HATEOAS _links?
答案 0 :(得分:1)
你没有&#34; _links&#34;你需要隐藏它或添加一个可以接受该对象的小类。
// Add this and you will get error on "self" that is not mark as ignore:
public class _links {
}
如何解决?只需添加另一个嵌套类。 请注意它变得难看,我刚刚解释了这个想法。
答案 1 :(得分:0)
真正的解决方案是 JsonIgnoreProperties 注释,它现在写在这里https://stackoverflow.com/a/26614217/4173048。