在Java中通过REST调用发布和检索JSON对象

我有一个Rest端点(基于球衣)接受一个JSON对象,通过将它映射到一个POJO来获取它,例如

@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public void getResult(PojoClass pojo)

我的PojoClass是:

@XmlRootElement
public class PojoClass {
private List<String> list;

public List<String> getList() {
    return list;
}

public void setList(List<String> list) {
    this.list = list;
}
}

现在,如果我通过curl命令发送一个json数据:

curl -H "Content-type: application/json"  -i -X  'POST' -d @/tmp/xyz.json  http://127.0.0.1:8080/test

我能够将它正确地映射到我的PojoClass中。

xvz.json是:

{
  "list":[
     "123",
     "456"
    ]
}

PojoClass的列表将有两个元素(“123”和“456”)。

但是,如果从JAVA做一个post调用。 我发送的是和负载相同的json结构,它被作为一个PojoClass作为单个元素接收,这个元素是一个级联,如[“123”,“456”]

我正在使用“HttpURLConnection”从java发出一个post调用。

是否需要额外获取与cURL命令相同的结果?


这是JSONObject和JSONArray之间的一个库冲突,它在请求Payload中破坏了我的JSON。 当我处理这个错误时,请求很顺利,一切都像魅力一样。

链接地址: http://www.djcxy.com/p/48787.html

上一篇: Posting and retrieving a JSON object via REST call in java

下一篇: HTTP POST request to send an image