当前位置:首页 > Java技术 > SpringMVC---- SpringMVC返回JSON数据

SpringMVC---- SpringMVC返回JSON数据

2022年11月09日 10:13:29Java技术10

目录

一. JSON

二、JSON数据

三、返回JSON配置步骤

四、返回JSON数据格式

一. JSON
现在的开发中,几乎都是前后端分离的形式,越来越多的请求使用Ajax的异步请求,而不再是传统的跳转,使用Ajax异步请求之后,我们后端处理结果大多以JSON的形式进行响应,响应给前端,前端得到响应结果后,进行处理和渲染。在SpringMVC中,使用JSON非常的简单,SpringMVC中可以将集合等数据自动的转换成JSON数据格式,当然我们需要加入JSON相关的依赖。

二、JSON数据格式
JSON数据就是一段字符串而已,只不过有不同意义的分隔符将其分割开来而已,我们看上面的符号,里面有[] ,{}等符号。

1、[]中括号代表的是一个数组 

 [{"name":"胡小威" , "age":20 , "male":true},{"name":"赵小亮" , "age":22 , "male":false}]

2、{}大括号代表的是一个对象  

        {"name":"胡小威" , "age":20 , "male":true}           

3、混合 

     {'total':80,'rows':10,[{'bookNane':'三资金','price':100},{'bookName':'金刚经','price':200}]

双引号""表示的是属性值
冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型

三、返回JSON配置步骤
1、首先导入JSON的相关依赖
在pom.xml中配置

<!--jackson-->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>${jackson.version}</version>
    </dependency>
2、在springmvc.xml文件中配置JSON的消息转换器

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJackson2HttpMessageConverter"/>
            </list>
        </property>
    </bean>
    <bean id="mappingJackson2HttpMessageConverter"
          class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <!--处理中文乱码以及避免IE执行AJAX时,返回JSON出现下载文件-->
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
                <value>text/json;charset=UTF-8</value>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>
3、在控制层使用@ResponseBody注解标记请求处理方法

        被该注解所标记的请求处理方法将返回JSON格式的数据,绕开视图解析器

注:开启注解式开发使用

四、返回JSON数据格式
1、返回List泛型格式的JSON数据

@RequestMapping("/queryListBooks")
    @ResponseBody
    public List<Book> queryListBooks(Book book,HttpServletRequest request){
        PageBean pageBean=new PageBean();
        pageBean.setRequest(request);
        List<Book> books = bookService.queryBookPager(book, pageBean);
        return   books;
    };


2、返回实体类型的JSON数据

@RequestMapping("/querySingleBook")
    @ResponseBody
    public Book querySingleBook(Integer bookId){
        Book book = bookService.selectByPrimaryKey(bookId);
        book.setDate(new Date());
        return book;
    }


在实体类属性中使用@JsonIgnore  

此注解代表在返回JSON数据时会忽略此字段 只在返回实体类时有效

在实体类属性中使用@JsonProperty

在返回实体类的JSON数据格式时,给此字段取别名 只在返回实体类时有效

在实体类中的时间类型的属性使用@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

在返回实体类的JSON数据格式时,给此字段转换类型为pattern属性,因为时区的问题,还需要加上八小时,为东八区。

3、返回Map类型的JSON数据

 @RequestMapping("/querySingleMap")
    @ResponseBody
    public Map<String, Object> querySingleMap(Integer bookId){
        return  bookService.querySingleMap(bookId);
    }


在此类型中如要时间类型转换,就得去mapper.xml文件中的sql语句用函数转换

4、查询返回List<map>类型的JSON数据

@RequestMapping("/queryMapList")
    @ResponseBody
    public List<Map<String, Object>> queryMapList( ){
           return bookService.queryBookAll();
    }


5、返回混合类型的JSON数据

@RequestMapping("/queryhybridBooks")
    @ResponseBody
    public Map<String, Object> queryhybridBooks(Book book,HttpServletRequest request){
        PageBean pageBean=new PageBean();
        pageBean.setRequest(request);
        List<Book> books = bookService.queryBookPager(book, pageBean);
        Map<String, Object> json=new HashMap<>();
        json.put("total", pageBean.getTotal());
        json.put("rows", books);
        return json;
    };


6、返回String类型的JSON数据类型

@RequestMapping("/queryString")
    @ResponseBody
    public String queryString(){
        return "book/bookList";
    }


代码地址 提取码:8q5b
————————————————
版权声明:本文为CSDN博主「鑫709」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_59610127/article/details/124049678

作者:你七哥哥
来源链接:https://blog.csdn.net/m0_59218114/article/details/124513692

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68714.html

标签: SpringMVCSpring
分享给朋友:

“SpringMVC---- SpringMVC返回JSON数据” 的相关文章

Spring Cloud Feign 如何使用对象参数

概述Spring Cloud Feign 用于微服务的封装,通过接口代理的实现方式让微服务调用变得简单,让微服务的使用上如同本地服务。但是它在传参方面不是很完美。在使用 Feign 代理 GET 请求时,对于简单参数(基本类型、包装器、字符串)的使用上没有困难,但是在使用对象传参时却无法自动的将对象...

SpringCloud简单实例

SpringCloud简单实例

SpringCloud简单实例 SpringCloud是基于SpringBoot,需要先了解SpringBoot的相关知识。 这里只是一个非常简单的包含注册表、服务提供者、服务消费者三者的例子。 源码见: https://github....

小白快速入门|springcloud系列之

小白快速入门|springcloud系列之

目录 一、单体应用 二、架构的演进 三、集群、分布式、微服务的关系及区别 四、springcloud简介 五、总结 摘要:本文主要是对自己学习微服务做一个总结和回顾,如果读者感兴趣的话,希望也能帮助到你。😜...

Spring Boot 2.x 系列教程:WebFlux REST API 全局异常处理 Error Handling

Spring Boot 2.x 系列教程:WebFlux REST API 全局异常处理 Error Handling

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 本文内容 为什么要全局异常处理? WebFlux REST 全局异常处理实战 小结 摘录...

Spring Boot 使用 Maven 定制一个 parent 简化开发

Spring Boot 使用 Maven 定制一个 parent 简化开发

1/ 场景 有很多小应用,有一些公共的特点,比如说都依赖了spring-boot、log4j2、lombok、fastjson等等,为了方便开发,可以使用Maven定制一个parent来简化开发,统一管理第三方依赖的版本。(为后续的微服务做准备哦!...

springboot集成activiti工作流时容易出现的问题

No.1 启动报错 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.activiti.spring.boot.SecurityAutoCo...

spring boot随笔二

spring boot随笔二

pring Boot与日志(日志框架、日志配置) 1、市面上的日志框架JUL、JCL、Jboss-logging、logback、log4、log4j2、slf4j……    ...

项目ITP(五) spring4.0 整合 Quartz 实现任务调度

项目ITP(五) spring4.0 整合 Quartz 实现任务调度

2014-05-16 22:51 by Jeff Li 前言   系列文章:[传送门]   项目需求:     二维码推送到一体机上,给学生签到扫描用。然后需要的是 上课...

【错误解决】Error creating bean with name 'transactionManager' :nested exception is java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/

搭建ssh框架中新建JUint测试出现的问题。这个问题实在太伤脑筋。。。。因为不好找到解决办法 直接先说解决方式:添加org.springframework.jdbc-XX.jar,然后build path 一开始以为是mysql-connctiontor-java版本问题...

Springboot配置Gson

Springboot配置Gson

首先除去json包,然后引入Gson的依赖 然后在配置类中做如下配置: package com.config; import com.google.gson.Gson; import com.google.gson.GsonBuilder...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。