【问题标题】:Can not deserialize instance of CUSTOM_CLASS out of START_ARRAY token无法从 START_ARRAY 令牌中反序列化 CUSTOM_CLASS 的实例
【发布时间】:2011-12-02 05:27:29
【问题描述】:

我正在尝试通过 jQuery AJAX 将对象数组发送到 Spring 控制器。 这是javascript代码:

var data = new Array();
        $.each(products, function (i) {
            var temp = {};
            temp.orpid = products[i].orpid;
            temp.orpah = $('#orpah' + products[i].orpid).is(':checked');
            temp.orpad = $('#orpad' + products[i].orpid).val();
            data.push(temp);
        });
        $.postJSON(url + 'save',
                data,
                function(response) {
                    if (response.isAuthenticated && response.isAuthorized) {
                        if (response.hasErrors) {
                            $('#routeForm').setErrors(response.errors);
                            hideWait();
                        }
                    }
                    else
                        redirectToLogin();
                });

发送到服务器的参数:

[{"orpid":10,"orpah":false,"orpad":""},{"orpid":11,"orpah":false,"orpad":""}]

问题是服务器响应 500 错误:

Can not deserialize instance of XXX out of START_ARRAY token 

其中 xxx 是我的自定义表单类的名称。

谁能解释一下问题出在哪里? 谢谢

【问题讨论】:

  • 听起来您的服务器端代码正在尝试从 JSON 输出中读取 XXX 的实例,而不是 XXX 的数组。您可以发布使用的代码示例吗?
  • 您好,感谢您的回复。你可以在这里看到整个图片:stackoverflow.com/questions/7671930/…,除了那里描述的问题已经解决了。我将 ActionForm 移动到单独的类
  • 马特 b,谢谢。你是对的。我将数组更改为对象,它工作正常:)谢谢!
  • 干得好 nKognito。您能否自行发布该问题的答案,然后接受该答案以便我们结束该问题?此外,如果他们解决了您的问题,您需要接受之前问题的答案。

标签: java jquery ajax spring-mvc


【解决方案1】:

这里是my solution。您唯一需要做的就是在服务器端创建单独的对象。

【讨论】:

    猜你喜欢
    • 2020-09-23
    • 1970-01-01
    • 2016-07-30
    • 2015-03-10
    • 2019-10-25
    • 2015-12-24
    • 2018-12-03
    • 2020-07-07
    • 2021-03-16
    相关资源
    最近更新 更多