您的位置:首页 > 编程语言 > Java开发

菜鸟学习Spring——SpringMVC注解版解析不同格式的JSON串

2018-01-15 23:49 639 查看


原创地址:http://blog.csdn.net/gwblue/article/details/43269323

一、概述

        不同格式的JSON串传到后台来实现功能这个是我们经常要做的一件事,本篇博客就给大家介绍四种不同的JSON串传到后台后台如何用@RequestBody解析这些不同格式的JSON串的。

二、代码展示

需要引用的jar包



1.xml配置

Web.xml

[html] view
plain copy

<?xml version="1.0" encoding="UTF-8"?>  

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"<
4000
span style="margin:0px;padding:0px;border:none;background-color:inherit;">  

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   

    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  

    <servlet>  

        <servlet-name>springMVC</servlet-name>  

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  

        <load-on-startup>1</load-on-startup>  

    </servlet>  

    <servlet-mapping>  

        <servlet-name>springMVC</servlet-name>  

        <url-pattern>*.spring</url-pattern>  

    </servlet-mapping>  

    <welcome-file-list>  

        <welcome-file>index.jsp</welcome-file>  

    </welcome-file-list>  

</web-app>  

springMVC-servlet.xml

[html] view
plain copy

<?xml version="1.0" encoding="UTF-8"?>  

<beans xmlns="http://www.springframework.org/schema/beans"  

    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"  

    xsi:schemaLocation="  

        http://www.springframework.org/schema/beans   

        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  

        http://www.springframework.org/schema/context   

        http://www.springframework.org/schema/context/spring-context-3.0.xsd  

          http://www.springframework.org/schema/mvc   

        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">  

    <context:component-scan base-package="com.gaowei.JSON" />  

    <mvc:annotation-driven />  

      

  

</beans>  

2.java代码

Userinfo.java

[java] view
plain copy

package com.gaowei.entity;  

  

public class Userinfo {  

    private String username;  

    private String password;  

    public String getUsername() {  

        return username;  

    }  

    public void setUsername(String username) {  

        this.username = username;  

    }  

    public String getPassword() {  

        return password;  

    }  

    public void setPassword(String password) {  

        this.password = password;  

    }  

}  

Test.java

[java] view
plain copy

package com.gaowei.JSON;  

  

import java.util.ArrayList;  

import java.util.List;  

import java.util.Map;  

  

import org.springframework.stereotype.Controller;  

import org.springframework.web.bind.annotation.RequestBody;  

import org.springframework.web.bind.annotation.RequestMapping;  

  

  

  

  

  

import com.gaowei.entity.Userinfo;  

  

@Controller  

public class Test {  

      

    @RequestMapping(value="getJSON1")  

    public void getJSON1(@RequestBody Userinfo userinfo){  

        System.out.println("------getJSON1---start----");  

        System.out.println(userinfo.getUsername());  

        System.out.println(userinfo.getPassword());  

        System.out.println("------getJSON1---end----");  

    }  

      

    @RequestMapping(value="getJSON2")  

    public void getJSON2(@RequestBody ArrayList<String> list){  

        System.out.println("------getJSON2---start----");  

        for (int i = 0; i < list.size(); i++) {  

            System.out.println(list.get(i));  

        }  

        System.out.println("------getJSON2---end----");  

    }  

      

    @RequestMapping(value="getJSON3")  

    public void getJSON3(@RequestBody List<Map> list){  

        System.out.println("------getJSON3---start----");  

        for (int i = 0; i < list.size(); i++) {  

            Map map=list.get(i);  

            System.out.println(map.get("username")+" "+map.get("password"));  

        }  

        System.out.println("------getJSON3---end----");  

    }  

      

    @RequestMapping(value="getJSON4")  

    public void getJSON4(@RequestBody Map map){  

        System.out.println("------getJSON4---start----");  

        System.out.println(map.get("username"));  

        List<Map> workList=(List)map.get("work");  

        for (int i = 0; i < workList.size(); i++) {  

            Map eachAddressMap=workList.get(i);  

            System.out.println("address="+eachAddressMap.get("address"));  

        }  

        Map schoolMap=(Map)map.get("school");  

        System.out.println(schoolMap.get("name"));  

        System.out.println(schoolMap.get("address"));  

        System.out.println("------getJSON4---end----");  

    }  

}  

3.界面代码

Test.jsp

[html] view
plain copy

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>  

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

<html>  

    <head>  

        <script src="jquery-1.3.2.js">  

        </script>  

        <script src="json2.js">  

        </script>  

        <script>  

            function userinfo(username, password){  

                this.username = username;  

                this.password = password;  

            }  

              

            function sendAjax1(){  

                var userinfoRef = new userinfo('中国', '中国人');  

                var jsonStringRef = JSON.stringify(userinfoRef);  

                $.ajax({  

                    type: "POST",  

                    data: jsonStringRef,  

                    url: "getJSON1.spring?t=" + new Date().getTime(),  

                    contentType: "application/json"  

                });  

            }  

  

            function sendAjax2(){  

                var myArray =new Array();  

                myArray[0]="中国1";  

                myArray[1]="中国2";  

                myArray[2]="中国3";  

                myArray[3]="中国4";  

                var jsonString=JSON.stringify(myArray);  

                  $.ajax({  

                        type: "POST",  

                        data: jsonString,  

                        url: "getJSON2.spring?t=" + new Date().getTime(),  

                        contentType: "application/json"  

                    });  

                }  

  

  

            function sendAjax3(){  

                    var myArray=new Array();  

                    myArray[0]= new userinfo('中国1', '中国人1');  

                    myArray[1]= new userinfo('中国2', '中国人2');  

                    myArray[2]= new userinfo('中国3', '中国人3');  

                    myArray[3]= new userinfo('中国4', '中国人4');  

                    var jsonString=JSON.stringify(myArray);  

                      $.ajax({  

                            type: "POST",  

                            data: jsonString,  

                            url: "getJSON3.spring?t=" + new Date().getTime(),  

                            contentType: "application/json"  

                        });  

                }  

  

            function sendAjax4(){  

                var jsonObject={  

                    "username":"accp",  

                    "work":[{  

                        "address":"address1"  

                        },{  

                        "address":"address2"      

                            }],  

                        "school":{  

                            "name":"tc",  

                            "address":"pjy"  

                            }  

                        }  

                var jsonString=JSON.stringify(jsonObject);  

                  $.ajax({  

                        type: "POST",  

                        data: jsonString,  

                        url: "getJSON4.spring?t=" + new Date().getTime(),  

                        contentType: "application/json"  

                    });  

            }  

        </script>  

    </head>  

    <body>  

        <input type="button" onclick="sendAjax1()" value="sendAjax1"/>  

        <br/>  

        <input type="button" onclick="sendAjax2()" value="sendAjax2">  

        <br/>  

        <input type="button" onclick="sendAjax3()" value="sendAjax3">  

        <br/>  

        <input type="button" onclick="sendAjax4()" value="sendAjax4">  

        <br/>  

    </body>  

</html>  

4.效果图





三、总结。

        这里要注意jar包的引用不要把Spring的所有jar包都引用了会引起jar包冲突而导致报HTTP 415的错误。@RequestBody这个方法很强大可以把JSON串转化为实体类、ArryList、Map等对象。这样的方法让我们开发人员开发效率大大的提高了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: