精华内容
下载资源
问答
  • JSON数据交互

    2019-12-31 09:09:10
    JSON数据交互

    为什么使用JSON进行数据交互

    JSON数据格式比较简单、解析比较方便,在接口调用及HTML⻚面Ajax调用时较常用。

    JSON交互方式

    • 请求是KV,响应是JSON(推荐使用)
    • 请求是JSON,响应是JSON

    JSON处理工具

    • jackson
    • gson
    • fastjson
      在 SpringMVC 中,对 jackson 和 gson 都提供了相应的支持,就是如果使用 这两个作为 JSON 转换器,只需要添加对应的依赖就可以了,返回的对象和返回的集合、Map 等都会自动转为 JSON,但是,如果使用 fastjson,除了添加相应的依赖之外,还需要自己手动配置 HttpMessageConverter 转换器。其实 前两个也是使用 HttpMessageConverter 转换器,但是是 SpringMVC 自动提供的,SpringMVC 没有给 fastjson 提供相应的转换器。

    jackson

    输入key/value、输出JSON(推荐)

    jackson 是一个使用比较多,时间也比较长的 JSON 处理工具,在 SpringMVC
    中使用 jackson ,只需要添加 jackson 的依赖即可:

    <dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.10.1</version>
    </dependency>
    
    

    依赖添加成功后,凡是在接口中直接返回的对象,集合等等,都会自动转为
    JSON。

    jsp页面

    function responseKV(){ $.ajax({
    type:"post",
    url:'${pageContext.request.contextPath }/responseKV',
    //输入是key/value时,默认就指定好了contentType了,不需要再指定了 
    //contentType:'application/json;charset=utf-8', 
    //data为key/value形式
    data:'name=json测试&price=999',
    success:function(data){ alert(data);
    } });
    }
    

    Controller类

     // 输入是key/value,输出是json
    // @ResponseBody 将返回值转成json串响应给前台
    @RequestMapping("/responseKV") 
    @ResponseBody
    public Item responseKV(Item item) {
    return item; 
    }
    

    ⻚面控制台输出

    在这里插入图片描述

    输入JSON、输出JSON

    JSP⻚面

    function requestJson(){
    $.ajax({ 
        type:"post",
        url:'${pageContext.request.contextPath }/requestJson', 
        //输入是json是 ,需要指定contentType为application/json
        contentType:'application/json;charset=utf-8',
        data:'{"name":"json测试","price":999}', 
        success:function(data){
            alert(data.name); 
            }
    }); }
    

    Controller类

    @Controller
    public class JsonController {
    // 输入是json,输出是json
    // @RequestBody 将请求的json串转成java对象 
    // @ResponseBody 将返回值转成json串响应给前台 
    @RequestMapping("/requestJson")
    @ResponseBody
    public Item requestJson(@RequestBody Item item) {
    return item; }
    }
    

    ⻚面控制台输出

    在这里插入图片描述

    gson

    gson 是 Google 推出的一个 JSON 解析器,主要在 Android 开发中使用较 多,不过,Web 开发中也是支持这个的,而且 SpringMVC 还针对 Gson 提供了相关的自动化配置,以致我们在项目中只要添加 gson 依赖,就可以直接使用 gson 来做 JSON 解析了。

    <dependency> 
    <groupId>com.google.code.gson</groupId> 
    <artifactId>gson</artifactId> 
    <version>2.8.6</version>
    </dependency>
    
    

    如果项目中,同时存在 jackson 和 gson 的话,那么默认使用的是 jackson
    因为:
    org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter 类的构造方法中,加载顺序就是先加载 jackson 的 HttpMessageConverter,后加载 gson 的 HttpMessageConverter。
    加完依赖之后,就可以直接返回 JSON 字符串了。使用 Gson 时,如果想做自
    定义配置,则需要自定义 HttpMessageConverter。

    <mvc:annotation-driven> 
        <mvc:message-converters>
            <ref bean="httpMessageConverter"/> 
        </mvc:message-converters>
    </mvc:annotation-driven>
    
    <bean class="org.springframework.http.converter.json.GsonHttpMessage Converter" id="httpMessageConverter">
        <property name="gson">
            <bean class="com.google.gson.Gson" factory-bean="gsonBuilder" factory-method="create"/> 
        </property>
    </bean>
    
    <bean class="com.google.gson.GsonBuilder" id="gsonBuilder">
        <property name="dateFormat" value="yyyy-MM-dd"/> 
    </bean>
    

    fastjson

    fastjson 号称最快的 JSON 解析器,但是也是这三个中 BUG 最多的一个。在 SpringMVC 并没针对 fastjson 提供相应的 HttpMessageConverter,所以, fastjson 在使用时,一定要自己手动配置 HttpMessageConverter(前面两个如果没有特殊需要,直接添加依赖就可以了)。
    使用 fastjson,我们首先添加 fastjson 依赖:

    <dependency> 
    <groupId>com.alibaba</groupId> 
    <artifactId>fastjson</artifactId> 
    <version>1.2.60</version>
    </dependency>
    

    然后在 SpringMVC 的配置文件中配置 HttpMessageConverter:

    <mvc:annotation-driven> 
        <mvc:message-converters>
            <ref bean="httpMessageConverter"/> 
        </mvc:message-converters>
    </mvc:annotation-driven>
    <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessage Converter" id="httpMessageConverter">
        <property name="fastJsonConfig">
        <bean class="com.alibaba.fastjson.support.config.FastJsonConf ig">
            <property name="dateFormat" value="yyyy-MM-dd"/> 
        </bean>
        </property>
    </bean>
    

    fastjson 默认中文乱码,添加如下配置解决:

    <mvc:annotation-driven> 
        <mvc:message-converters>
            <ref bean="httpMessageConverter"/> 
        </mvc:message-converters>
    </mvc:annotation-driven>
    <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessage Converter" id="httpMessageConverter">
        <property name="fastJsonConfig">
            <bean class="com.alibaba.fastjson.support.config.FastJsonConfig">
                <property name="dateFormat" value="yyyy-MM-dd"/> </bean>
                </property>
                <property name="supportedMediaTypes">
                    <list> 
                        <value>application/json;charset=utf-8</value>
                    </list>
        </property>
    </bean>
    
    展开全文
  • json数据交互

    2017-12-25 09:04:38
    springmvc 的json数据交互 - 哎幽的成长 - CSDN博客--和老师讲课相同 http://blog.csdn.net/u012373815/article/details/47208187 ----------------- 1 json数据交互  为什么要进行json数据交互 json...

    springmvc 的json数据交互 - 哎幽的成长 - CSDN博客--和老师讲课相同
    http://blog.csdn.net/u012373815/article/details/47208187

    -----------------

    json数据交互

     为什么要进行json数据交互

    json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。

    比如:webservice接口,传输json数据.

     springmvc进行json交互

        

     

    1、请求的是json、输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json不太方便

    2、请求的是key/value、输出json。此方法比较常用。

     

    1.1.1 @RequestBody

    作用:

    @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为jsonxml等格式的数据并绑定到controller方法的参数上。

    本例子应用:

    @RequestBody注解实现接收http请求的json数据,将json数据转换为java 对象

    1.1.2 @ResponseBody

    作用:

    该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端

    本例子应用:

    @ResponseBody注解实现将controller方法返回对象转换为json响应给客户端

    1.1.3 请求json,响应json实现:

    1.1.3.1 环境准备

    1.1.1 加载json转的jar

    Springmvc默认用MappingJacksonHttpMessageConverterjson数据进行转换,需要加入jackson的包,如下:

    springmvc中使用jackson的包进行json转换(@requestBody@responseBody使用下边的包进行json转),如下:

      

    1.1.2 配置json转换器

    在注解适配器中加入messageConverters

    复制代码
    <!--注解适配器 -->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
            <property name="messageConverters">
            <list>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
            </list>
            </property>
        </bean>
    复制代码

    注意:如果使用<mvc:annotation-driven /> 则不用定义上边的内容。

     

    1.4    json交互测试

    1.4.1       输入json串,输出是json串

    1.4.1.1      jsp页面

    <scripttype="text/JavaScript"

    src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script>

    要记得引用js

    使用jquery的ajax提交json串,对输出的json结果进行解析。  Ajax 关键词 type   提交方法类型 ,url ,datatype   预期服务器返回的数据类型,

    contentType  发送的数据的类型 ,   success  成功返回,

     

       function requestJson() {

          //请求JSON输出json

          $.ajax({

          type:'post',

          url:'${pageContext.request.contextPath}/requestJson.action',

          contentType:'application/json;charset=utf-8',

          data:'{"name":"手机","price":"999"}', //controller 的java代码中被转换为itemsCustom对象

          success:function (data){

          alert(data);

          }

          });

       }

    1.4.1.2      controller

    @Controller

    public classJsonTest {

       //请求json(商品信息)输出json(商品信息)

       //@RequestBody 将请求的商品信息的json串转成ItemsCustom对象

       //@ResponseBody 将ItemsCustom转换成json输出

       @RequestMapping("/requestJson")

       public @ResponseBody ItemsCustomrequestJson(@RequestBodyItemsCustom itemsCustom){

         

          //@ResponseBody 将ItemsCustom转换成json输出

          return itemsCustom;  

       }

    }

     

    1.4.1.3      测试结果

    1.4.2       输入key/value,输出是json串

    1.4.2.1      jsp页面

    使用jquery的ajax提交key/value串,对输出的json结果进行解析。

    function responseJson() {

          //请求key/value输出json

          $.ajax({

            type:'post', 

            url:'${pageContext.request.contextPath}/responseJson.action',

            //contentType:'application/json;charset=utf-8',  请求key/value默认是key/value 所以不用指定

            data:'name=手机&price=999',

            success : function(data){

            alert(data);

            }

          });

       }

    1.4.2.2      controller

    //请求key/value(商品信息)输出json(商品信息)

       @RequestMapping("/responseJson")

       public @ResponseBody ItemsCustomresponseJson( ItemsCustom itemsCustom){  //这里就可以自动转换成itemsCustom 对象了吗?

          //@ResponseBody 将ItemsCustom转换成json输出

          return itemsCustom;  

       }

    1.4.2.3      测试

     

     

    1.2.3  小结

    实际开发中常用第二种方法,请求key/value数据,响应json结果,方便客户端对结果进行解析。

    展开全文
  • Android客户端与服务器端的json数据交互(内含大量知识点),包含文件的上传,文件浏览器等。
  • 主要介绍了SPRINGMVC JSON数据交互如何实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • SpringMVC json数据交互

    2020-12-04 16:53:12
    SpringMVC 与json数据交互 json数据格式在前端框架中较常用,json格式比较简单,解析还比较方便 2.1进行json交互的两种情况 客户端请求的是key/value,contentType=application/x-www-form-urlencoded默认,不需要...

    SpringMVC 与json数据交互

    json数据格式在前端框架中较常用,json格式比较简单,解析还比较方便

    2.1进行json交互的两种情况

    1. 客户端请求的是key/value,contentType=application/x-www-form-urlencoded默认,不需要使用
      @RequestBody。但仍然需要使用@ResponseBody注解将java对象转成json串输出
    2. 客户端请求的是json字符串,需要指定contentType=application/json,需要使用@RequestBody注解将
      json串转成java对象。并使用@ResponseBody注解将java对象转成json串输出

    2.2 导入jackson包

    maven依赖配置:

    <!-- jackson --> 
    <dependency> 
        <groupId>com.fasterxml.jackson.core</groupId> 
        <artifactId>jackson-core</artifactId> 
        <version>2.9.5</version> 
    </dependency> 
    <dependency> 
        <groupId>com.fasterxml.jackson.core</groupId> 
        <artifactId>jackson-databind</artifactId> 
        <version>2.9.5</version> 
    </dependency> 
    <dependency> 
        <groupId>com.fasterxml.jackson.core</groupId> 
        <artifactId>jackson-annotations</artifactId> 
        <version>2.9.5</version> 
    </dependency> 
    

    注意:spring4.x须使用jackson2.x版本,而spring3.x版本使用jackson1.x版本

    2.3 配置json转换器

    使用<mvc:annotation-driven />即可

    2.4 json交互测试

    1.请求key/value

    页面js:

    <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script >
            function keyvlaue(){
             $.ajax({
                 url : "keyValue.do",
                 type : "post",
                 contentType : "application/x-www-form-urlencoded",
                 data : {
                     empno : 1001,
                     ename : "tom",
                     job : "clerk",
                     salary : 2580
                 },
                 success : function(data){
                     alert(data);
                 }
             });
             }
        </script>
    </head>
    <body>
    <button  onclick="keyvlaue()" >测试 key/value的方法</button>
    </body>
    

    Controller方法:

    @PosttMapping("/keyValue.do") 
    public void testKeyValue(Emp emp, HttpServletResponse response) throws IOException 
    { 
        System.out.println("提交数据为key/value格式..."); 
        System.out.println(emp); 
        response.getWriter().write("ok"); 
    } 
    

    测试结果:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    2.请求json字符串

    页面js:

    function jsonString(){
             $.ajax({
                url : "jsonString.do",
                type : "post",
                contentType : "application/json",
                data : JSON.stringify({
                        empno : 1002,
                        ename : "jerry",
                        job : "clerk",
                        salary : 3690
                    }),
                success : function(data){
                    alert(data);
                    }
             });
        }
    
    
    <button  onclick="jsonString()" >测试 请求json字符串的方法</button>
    

    Controller方法:

    @PosttMapping("/jsonString.do") 
    public void testJsonString(@RequestBody Emp emp, HttpServletResponse response) 
    throws IOException { 
        System.out.println("提交数据为jsonString格式..."); 
        System.out.println(emp); 
        response.getWriter().write("ok"); 
    } 
    

    测试结果:

    在这里插入图片描述
    在这里插入图片描述

    3.响应json对象

    页面js:

     function responseEntity(){
             $.ajax({
                url : "responseEntity.do",
                type : "post",
                success : function(data){
                 var html = "员工编号:" + data.empno;
                    html += " 员工姓名:" + data.ename;
                    html += " 员工岗位:" + data.job;
                    html += " 员工工资:" + data.salary;
                    $("#info").html(html);
                    }
             }
    

    Controller方法:

    @RequestMapping("/responseEntity.do") 
    @ResponseBody 
    public Emp testResponseEntity(){ 
        Emp emp = new Emp(); 
        emp.setEmpno(1003); 
        emp.setEname("chris"); 
        emp.setJob("manager"); 
        emp.setSalary(4560.5); 
        return emp; 
    } 
    

    测试结果:

    在这里插入图片描述

    4.响应json数组

    页面js:

    function responseList(){
             $.ajax({
                url : "responseList.do",
                type : "post",
                success : function(data){
                var html = "";
                $.each(data, function(i,emp){
                    html += "<p>";
                    html += "员工编号:" + emp.empno;
                    html += " 员工姓名:" + emp.ename;
                    html += " 员工岗位:" + emp.job;
                    html += " 员工工资:" + emp.salary;
                    html += "</p>";
                        });
                 $("#info").html(html);
                    }
                });
            }
    
    

    Controller方法:

    @RequestMapping("/responseList.do") 
    @ResponseBody 
    public List<Emp> testResponseList(){ 
        List<Emp> list = new ArrayList<Emp>(); 
        Emp e1 = new Emp(101,"zhangsan","aaa",123.0); 
        Emp e2 = new Emp(102,"lisi","bbb",456.9); 
        Emp e3 = new Emp(103,"wangwu","ccc",789.5); 
        list.add(e1); 
        list.add(e2); 
        list.add(e3); 
        return list; 
    } 
    

    测试结果:

    在这里插入图片描述

    展开全文
  • Springmvc json数据交互

    2018-05-25 16:28:03
    1 Springmvc json数据交互 1.1 @RequestBody 1.2 @ResponseBody 1.3 请求json,响应json的实现 1.3.1 环境准备 1.3.2 配置json转换器 1.3.3 controller编写 1.3.4 页面js方法编写 1 Springmvc json数据...

    1 Springmvc json数据交互

    1.1 @RequestBody

    作用:@RequestBody 注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换 为json、xml等格式的数据并绑定到controller方法 的参数 上。

    1.2 @ResponseBody

    作用:该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据,如json、xml等,通过response响应给客户端。

    1.3 请求json,响应json的实现

    1.3.1 环境准备

    Springmvc默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的包,如下:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.9.5</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>
    
    1.3.2 配置json转换器

    在注解适配器中加入messageConverters

    <!--注解适配器 -->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
            <property name="messageConverters">
            <list>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
            </list>
            </property>
        </bean>

    注意:如果使用<mvc:annotation-driven /> 则不用定义上边的内容。

    1.3.3 controller编写
    // 商品修改提交json信息,响应json信息
        @RequestMapping("/editItemSubmit_RequestJson")
        public @ResponseBody Items editItemSubmit_RequestJson(@RequestBody Items items) throws Exception {
            System.out.println(items);
            //itemService.saveItem(items);
            return items;
    
        }
    1.3.4 页面js方法编写

    引入 js:

    //请求json响应json
        function request_json(){
            $.ajax({
                type:"post",
                url:"${pageContext.request.contextPath }/item/editItemSubmit_RequestJson.action",
                contentType:"application/json;charset=utf-8",
                data:'{"name":"测试商品","price":99.9}',
                success:function(data){
                    alert(data);
                }
            });
        }
    展开全文
  • SpringMVC-JSON数据交互

    2020-05-08 09:43:26
    掌握SpringMVC-JSON数据交互 主要内容掌握SpringMVC-JSON数据交互1.JSON简介2.SpringMVC JSON交互开发准备2.1.前端开发JSP。2.2.后端开发准备3.JSON交互前端开发3.1Jquery Ajax请求3.2 配置静态文件映射3.3 JS的JSON...
  • 主要介绍了SpringMVC JSON数据交互实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了SpringBoot学习之Json数据交互的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 本篇文章主要介绍了详解springMVC之与json数据交互方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • springmvc json数据交互

    2019-03-14 12:28:21
    springmvc json数据交互加入jar包Controller编写配置json转换器 SpringMVC默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的包 加入jar包 maven pom.xml中引入方式 &lt;!-- ...
  • Ajax Json数据交互

    2020-11-19 16:13:46
    Ajax Json数据交互 前端到后台:前端ajax发送json格式字符串,后台接收为pojo参数,注解为@RequestBody 后台到前端:后台直接返回pojo对象,前端直接接收为json对象或字符串,注解为@ResponseBody 代码示例<!--...
  • springmvc json 数据交互

    2017-02-05 22:54:03
    为什么要进行json数据交互 json数据格式在接口调用中、HTML页面中叫常用,json格式比较简单,解析比较方便。 比如:webservice接口,传输json数据 springmvc进行json交互 @RequestBody 作用: @RequestBody注解...
  • springmvc:json数据交互

    2017-05-18 22:16:30
    json数据交互为什么要进行json数据交互 jspn数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便 比如:webservice,传输json数据 springmvc进行json交互:@Controller public class Json ...
  • springmvc 的json数据交互

    千次阅读 2015-08-02 16:12:24
    json数据交互(重点) 1.1 为什么要进行json数据交互 json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。 比如:webservice接口,传输json数据.   1.2 springmvc进行json...
  • 主要介绍了SpringMVC JSON数据交互及RESTful支持实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • SpringMVC-json数据交互

    2020-07-28 08:07:32
    json数据交互 @RequestBody 作用:@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容(json数据)转换为java对象并绑定到Controller方法的参数上。 传统的...
  • 简单的android与服务器实现json数据交互解析,包含Gson方式和普通方式,实现四种json数据的交互解析
  • springmvc JSON数据交互

    2018-08-27 23:08:44
    配置 &lt;mvc:annotation-driven /&gt; JSON格式必须配置这一行 否则报415报误  jar包  jackson-annotations-2.4.0 jackson-core-2.4.2.jar ... //json数据交互 @RequestMapping(value...
  • springmvc中json数据交互

    2019-05-08 18:03:37
    json数据交互 什么是json? JSON是一种轻量级的数据交换格式。 在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种...
  • springmvc之json数据交互

    2018-09-13 11:57:29
     springmvc进行json数据交互   为什么要用json数据进行解析 最终输出json数据,为了方便在前端界面对请求结果进行解析。 1、请求json、输出json,要求请求的是json串,所以在前端页面需要将请求的内容转成json...
  • JSON数据交互和RESTful支持 使用JSON数据模拟登录功能 一、首先我们先导入JSON数据交互所需要使用的JAR包 二、编写web.xml文件和在src目录下创建一个springmvc-config.xml文件 三、在src目录下,创建一个com,...
  • SpringMvc的JSON数据交互

    2016-10-22 17:51:00
    为什么要进行json数据交互 json数据交互在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。 比如webservice接口,传输json数据。 1、如果客户端传输的是json串的话 那么会使用一个注解 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,363
精华内容 4,145
关键字:

json数据交互