0

我正在尝试将 JSON 对象列表发送到发布请求中。我在这里不断收到 500 错误。我觉得我没有在方法定义中将我的变量设置为正确的数据类型,但我不确定它也应该设置什么。

AJAX 请求:

function post_request(json_data) {

    $j.ajax({
        url : '../api/createDisplayGroup/postHtmlVar/' + containerID[1] + '/' + containerType[1],
        data: JSON.stringify(json_data),
        dataType: 'json',
        type : 'post',
        contentType : 'application/json'
    }).done(function(response) {
        run_update(response);
    }).error(function(jQXHR, textStatus, errorThrown) {
        alert('error getting request');
    });
};

Java REST 服务(仅限 POST):

@POST
 @Path("/postHtmlVar/{containerId}/{contentType}")
 @Consumes(MediaType.APPLICATION_JSON)
 public List<TabDefinition> postHtml(@PathParam("containerId") String containerId, @PathParam("contentType") String contentType, List<JSONObject> displayGroups) {
     Long contId = Long.parseLong(containerId);
     Long contType = Long.parseLong(contentType);


     //return convertToResponse(peopleFilterService.getDisplayGroups(contId, contType));*/

     return testDisplayGroup();
}
4

1 回答 1

0

您需要将输入的 json 字符串作为@FormDataParam. 我不认为您的 JAVA REST 框架可以将 json 编组为 JSONObject 列表。您可能必须创建一个表示 json 数据的类并像这样定义您的方法:

public List<TabDefinition> postHtml(@PathParam("containerId") String containerId, @PathParam("contentType") String contentType, @FormDataParam MyJSonDataClass myJsonDataClassObj) {
于 2013-08-12T16:10:41.300 回答