SPRING3MVC接收JSON参数的问题 JSON解析为空

问题描述

我想把前台页面里一个JSON结构的数据传到controller,尝试了数十次,由map到list到string都无法识别。JSON的数据结构如下{"info":{"templateName":$("#templateName").val(),"templateNo":"tmp156464"}}调用方式是通过jquery的ajax调用spring后台,$("#btSaveTemplate").click(function(){//alert($("#templateName").val());var data = {"info":{"templateName":$("#templateName").val(),"templateNo":"tmp156464"}};var data2 = {"templateName":$("#templateName").val()};$.ajax({ type: "get",//使用get/post方法访问后台 dataType: "json",//返回json格式的数据 url: "lotty/add",//要访问的后台地址 data: data, success: function(msg){//msg为返回的数据,在这里做数据绑定 if(msg == '1'){ alert('操作成功'); location.reload(); } }, error: function(jqXHR, textStatus, errorThrown) { alert("error:" + textStatus + " exception:" + errorThrown); } });后台spring确实收到了请求,并且执行了相应的方法,如下: @ResponseBody@RequestMapping(value="/add", method=RequestMethod.GET)public String doAdd([color=red][b]String info[/b][/color],Model model) throws Exception;红色粗体的地方,用String接收是null,改用List和HashMap都不行,后来在SPRING的JAR包中,翻到一个MappingJacksonJsonView,尝试了下,还是空值。之后,我在方法里加了HttpServletRequest参数,郁闷的是:request里面的parameter部分为空我想可能是SPRING注入处理JSON类的地方出错了,但是这个也不太可能。因为我传最基本的纯key-value结构的JSON数据,后台能成功捕获到(我的做法比较笨,前台有多少个key,controller方法里有多少个对应参数的那种)这是我SPRING的相关配置:<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>然后注入:<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref local="mappingJacksonHttpMessageConverter"/> </list> </property></bean>到此,实在不知道其他的解决方法了。我的想法是,在实际应用中如果做批量插入的话,可以一次提交一个大的JSON数据,在后台里解析成JSONObject对象,再逐步取值。试了大半天,没有结果,上来问问大家,SPRING3里面JSON做参数的一些经验。 问题补充:amcucn 写道

解决方案

简单点的方法以就是直接将你要传的json数据当成一个字符串提交到后台,后台使用JSONObject相关的方法 可以直接转成对应的MAP对象。然后你就可以处理了。大致的想法就是绕过springmvc本身的json处理类,把你想的"JSON"当成字符串传到后台。
解决方案二:
" target="_blank">" />" target="_blank">" wmode="" quality="high" menu="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="200" height="200">
解决方案三:
sjax提交加上这个:contentType : 'application/json',
解决方案四:
你传过来的info不是String对象,你要用一个相应的对象接收.这个对象里必须有String templateName;和String templateNo 两个属性

时间: 2024-11-01 07:02:52

SPRING3MVC接收JSON参数的问题 JSON解析为空的相关文章

ajax-SpringMVC3.2 无法接收json参数

问题描述 SpringMVC3.2 无法接收json参数 环境:SpingMVC3.2+jQuery.问题:方法能访问到.1)在ajax中使用contentType : ""application/json""时,controller无法获取参数.2)在ajax中不使用contentType时,controller能获取参数,但是会报错,因为参数中含有list,去掉list可以正常访问.JS方法片段: $.ajax({ contentType : "&qu

我的Android进阶之旅------&amp;gt;android如何将List&amp;lt;NameValuePair&amp;gt;请求参数列表转换为json格式

本文同步发表在简书,链接:http://www.jianshu.com/p/395a4c8b05b9 前言 由于接收原来的老项目并进行维护,之前的http请求是使用Apache Jakarta Common下的子项目HttpClient,因此使用了 List<NameValuePair> 方式来创建参数队列,然后通过一个字符串处理的工具类,生成的post请求体格式大致如: a=b&c=d&e=f 但是由于服务器api变更,需要将请求体的格式变成json格式,因此上面的请求参数要

js使用eval解析json(js中使用json)_javascript技巧

先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下: var s1='"a" + 2'; //表达式var s2='{a:2}'; //语句alert(eval(s1)); //->'a2'alert(

JavaScript实现url参数转成json形式_javascript技巧

朋友问的一个面试题:有个url,要求获取url 的参数,返回值为json格式. 简单的写了下,发笔记备份. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>simple a example for url to json</title> <script> var url = 'https://www.baidu.com/s?ie=u

jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据_jquery

jQuery ajax webservice:get 和 post 一.GET 方式 客户端 复制代码 代码如下: var data = { classCode: "0001"}; // 这里要直接使用JOSN对象 $.ajax({ type: "GET", contentType: "application/json; charset=utf-8", url: "/WebServices/ProductPropertyWebServi

JS中Json数据的处理和解析JSON数据的方法详解_javascript技巧

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.C#.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). JSON的规则很简单: 对象是一个无序的"'名称/值'对"集合.一个对象以&quo

实例解析java + jQuery + json工作过程(获取JSON数据)

前天刚刚写的一篇关于<实例解析java + ajax(jQuery) + json工作过程(登录)>的文章引起了网友们的关注和好评, 自从本站的账务管理系统(个人版)开源 以后很多网友询问系统的实现方式,我一一解释--,为此今天写文章详细讲解系统功能的实现细节. 以本站的开源项目账务管理系统的"债务人"模块为例子讲解 一.效果预览 二.实现方式 基本思想就是绑定列表中的人员名称触发事件,获得当前人员的ID发送ajax请求到后台,后台根据ID查询详细信息,返回JSON数据结果

ava json-用java的谷歌库gson解析JSON,如下的json数据,该如何定义java类??

问题描述 用java的谷歌库gson解析JSON,如下的json数据,该如何定义java类?? 求高人指点,用java的谷歌库gson解析JSON,如下的json数据,该如何定义java类?? 在线等............... { "00:00:8e:d7:ba:ac:88:47": { "flow-mod-3": { "version": 1, "type": "FLOW_MOD", "le

java 路由器心跳包-java中怎么接收服务器传过来的json呢?谢谢大家

问题描述 java中怎么接收服务器传过来的json呢?谢谢大家 最近最到了一个关于路由器心跳包,需要用java实现,在取值方面,路由器传过来的是一串json { "gwmac":"c8:3a:35:29:bc:80","gwaddr":"192.168.1.10","gwport":"8080","usrnum":"0", "versio