Java 用JAX-RS解析JSON
我正在用JAX-RS构建REST API。我有一篇文章使用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
@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":[] }
]