Java 用JAX-RS解析JSON

Java 用JAX-RS解析JSON,java,json,rest,jax-rs,Java,Json,Rest,Jax Rs,我正在用JAX-RS构建REST API。我有一篇文章使用JSON元素: 元素是一个类: @XmlRootElement public class EventData{ public long start; public long end; public Collection<Person> persons; } 如果我发布一个EventData的JSON字符串,它可以正常工作,但是如果我切换到: @POST @Consumes({MediaType.APPLIC

我正在用JAX-RS构建REST API。我有一篇文章使用JSON元素:

元素是一个类:

@XmlRootElement
public class EventData{
   public long start;
   public long end;
   public Collection<Person> persons;
}
如果我发布一个
EventData
的JSON字符串,它可以正常工作,但是如果我切换到:

@POST
@Consumes({MediaType.APPLICATION_JSON})
public Response transactionRequest(ArrayList<EventData> insert){
....}
@POST
@使用({MediaType.APPLICATION_JSON})
公共响应事务请求(ArrayList插入){
....}
并发送一个JSON字符串,如
“{eventData:[{start:x,end:y,persons:[..]}]”
它将构建
ArrayList
及其
eventData
对象,但
eventData
对象变量为
null


有人能帮忙吗?

您需要发送一个JSON数组,该数组由表示
EventData
类的JSON对象组成

您给出的示例不是这样的JSON数组,而是一个JSON对象,它具有一个名为“eventData”的属性,其中包含一个JSON数组

尝试类似的方法(基于您的
EventData
类):


请注意,这里没有提到您的
EventData
类,因为JSON没有命名类型的概念——它只是对象和对象数组;只有对象的属性有名称。

com.sun.jersey.JSON.impl.reader.JsonFormatException:需要冒号而不是“]”我的答案中的JSON是一个非常粗略的示例,我建议使用JAX-RS方法的输出,该方法返回带有一些伪项的列表。我将在一分钟内为您的
EventData
类编写一些有效的JSON:)com.sun.jersey.JSON.impl.reader.JsonFormatException:应使用冒号而不是“,”嗯,您是如何将JSON发送到JAX-RS服务的?这看起来像是在发送过程中丢失了一些东西。是的,我有一个android应用程序将JSON发送到JAX-RS服务……如果post ist中的单个EventData对象工作得很好。。。
@POST
@Consumes({MediaType.APPLICATION_JSON})
public Response transactionRequest(ArrayList<EventData> insert){
....}
[
  { "start":1, "end":2, "persons":[] },
  { "start":3, "end":4, "persons":[] }
]