這可能是一個愚蠢的問題,但我無法在網上找到明確的答案。 我正在用javax.ws.rs構建一個REST API。 我有一個類,它看起來像這樣如何從REST調用返回JSON?
public class Person{
private String name;
private List<Telephone> telephones;
constructor + getters + setters
}
我實現getAllPerson REST調用應該返回JSON。這是我現在在做:
Path("/persons")
@GET
@Produces({MediaType.APPLICATION_JSON})
public List<Person> getAllPersons() {
return facade.getAllPersons();
}
我不認爲這是做正確的方式,因爲它給了我一個錯誤(HTTP狀態500 - 內部服務器錯誤...)
而且我也不知道該程序如何知道如何將包含另一個電話對象列表的人員對象列表轉換爲JSON。
那麼什麼是正確的方式來返回像這樣的JSON列表,我應該手動構建json字符串?那麼getAllPersons()的返回類型應該是什麼?
對不起,如果這是一個非常愚蠢的問題,但我找不到一個清楚的答案。 在此先感謝。
編輯: 我得到的錯誤是:
Severe: MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=java.util.List<com.myproject.domain.Person>.
EDIT2: 我添加 @XmlRootElement我Person類,我添加一個空的構造
我也添加到了我pom文件:
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.6.4</version>
</dependency>
在你的日誌文件中查看太查看發生了什麼,併發布堆棧跟蹤如果你自己找不到解決方案 – Jens
你需要使用一些像Jackson這樣的JSON解串器。這是誰知道如何反序列化/序列化實體。 –
我添加了錯誤:) – Bosiwow