我有一個實體(列表),我需要轉換爲/從JSON的集合。澤西島2.1 - 消費作爲JSON字符串的POJO收集
的POJO:
public class Task {
private Long id;
private String title;
private Boolean done;
(...)
}
新澤西州將產生以下結果
[{"id":1,"title":"T1","done":false},{"id":2,"title":"T2","done":false}]
當我打電話的方法:
@GET
@Override
@Produces("application/json")
public List<Task> findAll() {
(...)
return tasks;
}
到目前爲止好。
現在,我需要使用一個類似的JSON字符串。我認爲下面的方法會做的伎倆:
@PUT
@Consumes("application/json")
public void save(List<Task> tasks) {
(...)
}
而是我得到的錯誤如下:
SEVERE: line 1:0 no viable alternative at input
'"[{\"id\":1,\"title\":\"T1\",\"done\":true},{\"id\":2,\"title\":\"T2\",\"done\":false}]"'
我在做什麼錯?這甚至有可能嗎?
新澤西州的依賴關係:
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>2.1</version>
</dependency>
下面是web.xml配置
<servlet>
<servlet-name>Jersey Servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>my.rest.package</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
你如何映射'Task'以JSON?你使用JAXB嗎? – 2013-08-01 07:09:19
我按照[這裏](https://jersey.java.net/documentation/latest/user-guide.html#json.moxy)所述將moxy模塊添加到我的pom.xml中。 json序列化很好,問題在於反序列化。 –