如何以 Json 格式从 POST 请求中获取对象列表
How to get the list of objects from POST request in Json format
我想在 dropwizard
中获取包含对象列表的内容 JSON 正文 Java/Jersey
考虑 json 正文
{
"tag1" : "value",
"parameter" : [
{
"name":"value1",
"content":"value2"
},
{
"name":"value1",
"content":"value2"
}
]
}
我试图以
的身份接收请求
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response insertJob(
@PathParam("tag1")
String tag1,
@JsonProperty("parameter")
List<RequestParameter> parameter
) {
return Response.ok(parameter).build();
}
但我只得到一个 "message": "Unable to process JSON"
。当我将正文更改为仅列表
[
{
"name":"value1",
"content":"value2"
},
{
"name":"value1",
"content":"value2"
}
]
和 java 代码到
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response insertJob(
List<RequestParameter> parameter
) {
return Response.ok(parameter).build();
}
我能够收到列表中的内容。如果列表有标签,我如何获取内容
为请求创建一个 pojo class
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
public class Job {
private String tag1;
@JsonProperty("parameter")
private List<RequestParameter> parameters;
public String getTag1() {
return tag1;
}
public void setTag1(String tag1) {
this.tag1 = tag1;
}
public List<RequestParameter> getParameters() {
return parameters;
}
public void setParameters(List<RequestParameter> parameters) {
this.parameters = parameters;
}
}
public class RequestParameter {
private String name;
private String content;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
然后把控制器改成这个
@Path(value = "/job")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response insertJob(
Job test
) {
return Response.ok(test).build();
}
这是输出
我想在 dropwizard
中获取包含对象列表的内容 JSON 正文 Java/Jersey考虑 json 正文
{
"tag1" : "value",
"parameter" : [
{
"name":"value1",
"content":"value2"
},
{
"name":"value1",
"content":"value2"
}
]
}
我试图以
的身份接收请求 @POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response insertJob(
@PathParam("tag1")
String tag1,
@JsonProperty("parameter")
List<RequestParameter> parameter
) {
return Response.ok(parameter).build();
}
但我只得到一个 "message": "Unable to process JSON"
。当我将正文更改为仅列表
[
{
"name":"value1",
"content":"value2"
},
{
"name":"value1",
"content":"value2"
}
]
和 java 代码到
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response insertJob(
List<RequestParameter> parameter
) {
return Response.ok(parameter).build();
}
我能够收到列表中的内容。如果列表有标签,我如何获取内容
为请求创建一个 pojo class
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
public class Job {
private String tag1;
@JsonProperty("parameter")
private List<RequestParameter> parameters;
public String getTag1() {
return tag1;
}
public void setTag1(String tag1) {
this.tag1 = tag1;
}
public List<RequestParameter> getParameters() {
return parameters;
}
public void setParameters(List<RequestParameter> parameters) {
this.parameters = parameters;
}
}
public class RequestParameter {
private String name;
private String content;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
然后把控制器改成这个
@Path(value = "/job")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response insertJob(
Job test
) {
return Response.ok(test).build();
}
这是输出