我需要有关REST API的帮助。我试图通过使用邮递员的身体进行测试通过API发送JSON数据。它似乎可以正常工作,但是当我通过调试代码检查阵列时,它说该阵列的大小为0。
我正在尝试发送此邮件
max_per_year
我正在使用Java EE。我试图将代码解析为String,但是我不知道我做错了还是不起作用。
这是代码:
{
"data":[
{
"name":"",
"valor":"",
"check":"0",
"ind":"1"
},
{
"name":"",
"valor":"* FT NPR **",
"check":"1",
"ind":"0"
}
]
}
我希望发送的是完整的JSON,但实际输出为空(大小= 0)。
谢谢。
答案 0 :(得分:0)
您可以像这样直接传递对象列表:
public Response definedSubGrupo(@QueryParam("Us") int US, List<YourObject> data)
答案 1 :(得分:0)
您使用的是JavaEE容器,并且根据要指定的注释,您将在JAX-RS上构建。
使用JAX-RS,您可以将请求正文作为纯String
public Response definedSubGrupo(@QueryParam("Us")final int US, final String jsonBody) { ... }
然后您可以使用市场上可用的库之一(JSON-java,Gson,Jackson等)将jsonBody
String
转换为表示JSON文档结构的对象。
例如,有了杰克逊,您将拥有
final TreeNode treeNode = objectMapper.readTree(jsonBody);
使用JSON-Java,您可以拥有
final JSONObject jsonObject = new JSONObject(jsonBody);
final JSONArray data = jsonObject.getJSONArray("data");
到目前为止,您所说的JAX-RS基本上是“ 将请求正文映射到此JSONArray
类”。
不幸的是JSONArray
的类布局似乎与您要发送的JSON不兼容,因此JAX-RS只需创建一个新的“空”实例。