[英]HttpMessageNotReadableException: Could not read JSON: Unrecognized field using Spring for Android
[英]Could not read JSON: Unrecognized field “_links” - Android REST HATEOAS client
我正在關注 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?
您沒有“_links”字段,您需要忽略它或添加一個小類來獲取該對象。
// Add this and you will get error on "self" that is not mark as ignore:
public class _links {
}
你怎么解決? 只需添加另一個嵌套類。 請注意它很快變得丑陋,我剛剛解釋了這個想法。
真正的解決方案是 JsonIgnoreProperties 注釋,它現在寫在這里https://stackoverflow.com/a/26614217/4173048 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.