【问题标题】:JQuery stringify not workingJQuery字符串化不起作用
【发布时间】:2016-09-18 10:58:26
【问题描述】:

简单地说,我正在尝试解析从 Spring 控制器通过 ModelAndView 对象传递的复合对象列表,如下所示

弹簧部分

ModelAndView view = new ModelAndView("my view");
List<ActionHistory> histories = myService.getListData();
view.addObject("histories", histories);
return view;

在 Jquery 中我尝试了几种替代方法,首先使用以下行从 List 构造 JSON:

var list = JSON.stringify('${histories}');
console.log(histories);

控制台正在返回

“[com.companyname.projectname.domains.ActionHistory@48126327]”

TypeError: 'in' 操作数 a 无效

我也尝试从 jquery-json 中包含“jquery.json.min.js”作为讨论的主题的建议,但在 Serializing to JSON in jQuery 上得到相同的错误

var histories = $.toJSON('${histories}');
console.log(histories);

【问题讨论】:

  • 你可以试试这个var list = JSON.stringify('histories'); console.log(histories);
  • 如果你的意思是在解析它返回之前记录列表(就像来自控制器一样)[com.sbm.muras.domains.ActionHistory@64b4ac3b]
  • 将您的数据设置为哈希图并将此 hasmap 引用设置为 json 对象 ref 并将其发送到您可以字符串化的 js
  • 您能否解释一下 list 上的问题是什么以及为什么它应该适用于 MAP 而不适用于 list ?。
  • 你必须打印 json 字符串。 javascript 在你的 spring 完成它的工作很久之后在浏览器中运行

标签: java jquery json spring


【解决方案1】:

检查你应该在ajax函数中的contentType。

contentType: "application/json"

处理这个 mvc 调用的 Spring 控制器也应该配置为

produces=MediaType.APPLICATION_JSON_VALUE

例如像

@RequestMapping(value ="/getList", method= RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE) 

【讨论】:

    猜你喜欢
    • 2012-07-08
    • 2011-08-12
    • 2012-07-03
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多