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

SpringMVC,接受、处理Json,fastjson解析json,用Postman4发送json数据

2018-01-30 22:10 691 查看
这个博客用的demo是接着我的上一篇博客(SpringMVC的 get,post参数请求及重定向)  感兴趣的朋友可以去看看~

 要用fastjson  要引入:

fastjson-1.1.41jar包

SpringMVC  结合alibaba的fastjson   把对象转json输出

1.配置spring-mvc.xml:

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

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

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

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

       xmlns:mvc="http://www.springframework.org/schema/mvc"

       xsi:schemaLocation="http://www.springframework.org/schema/mvc

       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.0.xsd
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
 

        <!--加载解析json的组件(fastjson)   配置消息转换器-->

    <mvc:annotation-driven>

        <mvc:message-converters>

            <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">

                <property name="supportedMediaTypes">

                    <list>

                        <!--这里顺序不能反,一定要先写text/html  不然ie下会出现下载提示-->

                        <value>text/html;charset=UTF-8</value>

                        <value>application/json;charset=UTF-8</value>

                    </list>

                </property>

            </bean>

        </mvc:message-converters>

    </mvc:annotation-driven>

  <!--注意这里的顺序  一定要加载解析json的组件先加载  再开启springmvc的注解驱动  否则会报错,编译器也不会提示错误,很蛋疼-->

    <!--开启springmvc的注解驱动-->

    <mvc:annotation-driven/>

    <!--配
4000
置包扫描-->

    <context:component-scan base-package="com.dengweiquan.**" />

    <!--配置viewResolver(视图解析器)-->

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <!--getrequestdispature的时候要填的前缀  和后准都自动填好  注意斜号很关键 漏填个斜号都会错-->

        <property name="prefix" value="/WEB-INF/view/"/>

        <property name="suffix" value=".jsp"/>

        <!--jsp要用到jstl-->

        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>

     </bean>

</beans>

2.修改UserController:
//打了@Controller  都归springMVC管

    //打了@Controller  是写请求路径的   假如请求路径里面是带user的   例如user/test.jsp  或者user/demo.jsp   这个请求就会分发到这个controller来处理

@Controller

@RequestMapping("user")

public class UserController {

    //@ResponseBody  意思返回体是调用了 spring-mvc.xml 里的<mvc:message-converters>处理返回数据  转json输出了

    @RequestMapping("/test")

    @ResponseBody

    public User  testUser()   {

        User user=new User();

        user.setId(12);

        user.setName("haha");

        return  user;

    }

    @RequestMapping("/demo")

    public String demoUser(){

        //返回userspringmvc自动帮你加好了前后缀  就是我们要去的user.jsp   在viewResolver哪里已经配置好了路径的前后缀

        return "demo";

    }

}

  输入网址 localhost:8080/user/test    页面上会显示json   {"id":12,"name":"haha"}

前端用PostMan4传来数据,并自动转为对象:

1.修改UserController

@Controller

@RequestMapping("user")

public class UserController {

    @RequestMapping("/test")

    public String  testUser(User user)   {

        return   "user";

    }

    @RequestMapping("/demo")

    public String demoUser(){

        //返回userspringmvc自动帮你加好了前后缀  就是我们要去的user.jsp   在viewResolver哪里已经配置好了路径的前后缀

        return "demo";

    }

}

2.先要用谷歌浏览器的组件 Postman4模拟发送get/post请求  请自行百度下载方法

注意postman4发送的post请求 可以通过request请求获得的数据格式是  Body里的x-www-form-urlencoded格式的



按send发送之后 debug就可以发现user对象已经封装好了  id为12  name为haha

前端用PostMan4传来json  然后自动转为对象:

1.postman4要设置 发送数据为json格式

选Body里的raw  然后设置Text为JSON(application/json)  然后自行写要传向后端的json



2.设置UserController

//打了@Controller  都归springMVC管

    //打了@Controller  是写请求路径的   假如请求路径里面是带user的   例如user/test.jsp  或者user/demo.jsp   这个请求就会分发到这个controller来处理

@Controller

@RequestMapping("user")

public class UserController {

    //假如是@RequestMapping("/test",method=RequestMethod.GET)  限制前端的请求,意思是前端只能发送GET请求

    //假如是@RequestMapping("/test",method=RequestMethod.POST)  意思是前端只能发送POST请求

    //要加上@RequestBody  才能json自动转对象

    @RequestMapping("/test")

    public String  testUser(@RequestBody User user)   {

        return   "user";

    }

    @RequestMapping("/demo")

    public String demoUser(){

        //返回userspringmvc自动帮你加好了前后缀  就是我们要去的user.jsp   在viewResolver哪里已经配置好了路径的前后缀

        return "demo";

    }

}

postman4发送json之后  debug发现user对象已经封装好了  id为12  name为haha
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: