簡體   English   中英

無法讀取 JSON:無法識別的字段“_links” - Android REST HATEOAS 客戶端

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM