Java Dropwizard反序列化数组

Java Dropwizard反序列化数组,java,json,jackson,dropwizard,Java,Json,Jackson,Dropwizard,我正忙于一个应用程序,需要将数组作为put方法的参数之一注入POJO。不幸的是,数组没有得到正确处理,这导致了错误的请求-响应。要说明前端传递的JSON,如下所示: { "name": "Jon", "surname": "Doe", "children": ["Chris", "Dave", "Sam"] } 以及我的Java表示: public class Person{ private String name; private String surna

我正忙于一个应用程序,需要将数组作为put方法的参数之一注入POJO。不幸的是,数组没有得到正确处理,这导致了错误的请求-响应。要说明前端传递的JSON,如下所示:

{
    "name": "Jon",
    "surname": "Doe",
    "children": ["Chris", "Dave", "Sam"]
} 
以及我的Java表示:

public class Person{

  private String name;
  private String surname;
  private List<String> children;

  public Person(){

  }

  @JsonProperty
  public String getName(){
    return name;
  }


  @JsonProperty
  public void setName(String name){
    this.name=name;
  }

  @JsonProperty
  public String getSurname(){
    return surname;
  }


  @JsonProperty
  public void setsurname(String surname){
    this.surname=surname;
  }

  @JsonProperty
  public List<String> getChildren(){
    return children;
  }


  @JsonProperty
  public void setChildren(List<String> children){
    this.children=children;
  }

}
如何正确处理JSON中数组的反序列化

编辑

我使用的是一个有角度的前端,我调用的方法如下:

function(json){
            return  $http({
                url: API_URL.people+"/update/personID",
                method: "PUT",
                headers: {
                    'Content-Type': 'application/json',
                    'Accept': 'application/json' 
                },
                data: json
            });
}

其中json参数包含上述名称、姓氏和子项。

看起来GET服务的定义不正确。它不应该定义人

根据http方法定义,GET http方法不能有正文。所以不能将Person作为输入参数

如果需要将Person发送到服务,则可能需要根据需要将http方法更改为POST或其他类似PUT的方法

@GET
@Timed
@UnitOfWork
@Path("/{userid}")
public Response getData(@PathParam("userid") LongParam userId) {

    // Do some stuff with the person

}

结果是我提供的密码就像一个符咒。经过进一步调查,我在javascript对象中犯了一个错误,该对象被转换并作为JSON发送,这导致了错误。

我很抱歉,这应该是一个Put方法。我据此对问题进行了编辑。谢谢你指出。你能分享你所得到的错误的stacktrace吗?不幸的是,服务器没有stacktrace。当我尝试访问路径时,只有400个错误的请求响应。您如何尝试调用该服务?你在用POSTMAN吗?我在用AJAX从我的角度前端调用它。你怎么知道是数组引起了问题?我猜是别的原因。你试过这个请求了吗?
@GET
@Timed
@UnitOfWork
@Path("/{userid}")
public Response getData(@PathParam("userid") LongParam userId) {

    // Do some stuff with the person

}