【问题标题】:Convert JSON array to list of strings in spring using GSON使用 GSON 在 spring 中将 JSON 数组转换为字符串列表
【发布时间】:2014-04-16 18:58:56
【问题描述】:

我有以下 JSON

["2848","241"]

通过使用以下 jquery 代码

var list = [];
    $.each($("input[class='selected']:checked"), function(){
        list.push($(this).val());
    });

我通过在 ajax 发布请求中使用以下内容将这些数据发送到我的 spring 控制器。

var jsonData = JSON.stringify(list);

我的spring控制器如下

@RequestMapping(value="/myurl", method =  RequestMethod.POST)
    public String sampleMethod(@RequestBody String jsonData){
        Type dataType = new TypeToken<List<String>>(){}.getType();
        List<String> myListObject = gson.fromJson(jsonData, dataType);
        System.out.println(myListObject.size());
        return "redirect:/someotherurl";
    }

由于某种原因,我收到 500 个内部服务器错误,但在浏览器的控制台上没有堆栈跟踪或错误。请建议缺少什么。?

【问题讨论】:

  • 检查您的服务器日志。你应该在那里看到一个堆栈跟踪。
  • 我的日志中没有任何内容,我的 Eclipse Tomcat 控制台中也没有看到任何堆栈跟踪
  • 如果您收到内部服务器错误,应该总是有错误。如果您真的找不到任何东西,请设置断点并单步执行您的 sampleMethod 代码,直到找到错误为止。
  • 是的,我这样做了,它总是在这里中断, List myListObject = gson.fromJson(jsonData, dataType);....我观察到调试器中的“jsonData”变量是在我的实际 json 字符串而不是 [" 之前有一些值,例如 %5B% ,这正常吗?
  • 如果它在那里中断,您不应该看到错误吗? fromJson 的参数是否有效以及您期望它们是什么?此方法可能会抛出 JsonParseExceptionJsonSyntaxException

标签: jquery ajax json spring gson


【解决方案1】:

通过添加修复它 contentType: "application/json" 到我的 ajax 请求。 服务器没有正确解释 json 数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多