我希望能够通过POST内容调用我的api
{
"property1" : "value1",
"property2" : "value2"
}
OR
[{
"property1" : "value1",
"property2" : "value2"
}]
为此我用
注释了java类@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
public class MyClass {
private String porperty1;
private String property2;
public MyClass() {
super();
// TODO Auto-generated constructor stub
}
public MyClass(String porperty1, String property2) {
super();
this.porperty1 = porperty1;
this.property2 = property2;
}
public String getPorperty1() {
return porperty1;
}
public void setPorperty1(String porperty1) {
this.porperty1 = porperty1;
}
public String getProperty2() {
return property2;
}
public void setProperty2(String property2) {
this.property2 = property2;
}
}
在servlet中我有这样的api
Response myAPI(Collection<MyClass> reqs, @Context HttpServletResponse httpResponse, @Context SecurityContext securityContext) {
}
但是我继续使用第一个请求类型获得内部服务器错误500.
我已经尝试将jackson = annotations版本从2.6.0更新到2.7.0,但它似乎没有在任何版本中工作。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.0</version>
</dependency>
注意:我的POM中还有其他jackson依赖项,例如jackson-databind和jackson-core,仍然指向2.6.4(和jackson-dataformat-xml指向2.6.3)。我无法更新这些版本。考虑到我正在尝试使用更高版本的jackson-annotations,这会有任何问题吗?
答案 0 :(得分:1)
您需要在实际属性上使用该注释,而不是包含属性的POJO。