• Spring 接收转换 jquery ajax json数组字符串


    1、ajax发送json字符串

    </pre><p>组建对象</p><p></p><pre code_snippet_id="449843" snippet_file_name="blog_20140813_2_7927326" name="code" class="javascript">var student = new Object();
    student.name = "柯乐义";
    student.age = "25";
    student.location = "广州";
    
    var student2 = new Object();
    student2.name = "柯范德萨";
    student2.age = "45";
    student2.location = "FDA";
    
    myList.push(student);
    myList.push(student2);
    ajax发送,注意datatype ,type 等的正确赋值,使用jsonstringify对对象进行模型转换,转换后的字符串能够在http://www.bejson.com/ 进行在线json格式检查正确与否。

                $.ajax({ //请求登录处理页
                            url:url, //登录处理页
                            dataType:"json",
                            data: JSON.stringify(<span style="font-family: Arial, Helvetica, sans-serif;">myList</span><span style="font-family: Arial, Helvetica, sans-serif;">),</span>
    			type: "POST",
                            headers : {
    					 'Accept' : 'application/json',
    					 'Content-Type' : 'application/json'
    				   },
    					
                            success:function (strValue) { //登录成功后返回的数据
                                //依据返回值进行状态显示
                                //alert(strValue);
                                if (strValue.successful == "true") {
                                    alert("发送成功@@");
                                }
                                else {
                                    alert("发送失败@@");
                                }
    
                            },
    
                            error:function () {
    
                                alert("请检查是否有參数错误@@");
                            }
                        });


    2、spring进行配置


    配置requestbody进行json字符串的数组转换

        @RequestMapping(value="/upload",produces="application/json")
        @ResponseBody
        public String login(HttpServletRequest req, HttpServletResponse reponse,
        		String from,String id,@RequestBody SnapInfo[] apList) throws UnsupportedEncodingException {
        	String result;
            logger.debug("start upload。"+from + ","+id);
    
            logger.debug(apList.length);
    
            result = JsonUtil.SendJsonResponse(true, "success");
            reponse.setContentType("text/html; charset=utf-8");
            reponse.setCharacterEncoding("utf-8");
    
            return new String(result.getBytes("utf-8"), "iso-8859-1");
    
    	}

    注意在springmvc-servlet.xml进行例如以下配置:json转化器配置

    	<bean name="mappingJacksonHttpMessageConverter"
    		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
    		<property name="supportedMediaTypes">
    			<list>
    				<value>text/html;charset=UTF-8</value>
    				<value>application/json</value>
    			</list>
    		</property>
    	</bean>
    
    	<bean
    		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    		<property name="messageConverters">
    			<list>
    				<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
    				<ref bean="mappingxmlHttpMessageConverter" /><!-- xml转换器 -->
    				<ref bean="stringHttpMessageConverter" /><!-- xml转换器 -->
    
    			</list>
    		</property>
    		<!--property name="messageConverters"> <list> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" 
    			/> <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" 
    			/> <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" 
    			/> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> 
    			<property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> 
    			</list> </property> </bean> </list> </property -->
    	</bean>

    class SnapInfo
    类SnapInfo定义的时候记得要构件一个空函数的构造函数,不然会报一下错误!

    JsonMappingException: No suitable constructor found for type [simple type, class ]: can not instantiate from JSON object



    參考文档:
    http://www.bejson.com/
    
    http://www.w3school.com.cn/jquery/ajax_post.asp
    
    http://keleyi.com/a/bjac/8p778pqo.htm
    
    http://stackoverflow.com/questions/7625783/jsonmappingexception-no-suitable-constructor-found-for-type-simple-type-class
    http://seaboycs.iteye.com/blog/1997635
    
    http://greatpwx.iteye.com/blog/1974150

  • 相关阅读:
    JS函数机制小结
    面向对象的JS随笔
    web性能优化
    css布局
    Spark内存管理
    Scala中==,eq与equals的区别
    Java中char占用几个字节
    Java中long和double的原子性
    elk-filebeat收集docker容器日志
    Spring Boot多数据源配置(二)MongoDB
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7353754.html
Copyright © 2020-2023  润新知