穿越Java - 开发框架篇 第三章 Spring Mvc | 第11节Spring MVC中的JSON处理

本文介绍在SpringMVC中处理JSON数据的方法,包括使用FastJSON、Jackson和Gson库进行JSON数据转换,以及如何在处理器方法中应用@ResponseBody注解简化JSON响应。

开发环境

基于:IntelliJ IDEAMaven构建工具JDK1.8SpringBoot 2.3.4Spring4.3.28编写。

官人如需使用 IDEA 请阅读教程:IntelliJ IDEA
官人如需使用 Maven 请阅读教程:Maven 构建工具的下载与安装

更多干货

请参考:《穿越 Java 之 语法基础篇》 系列文章
请参考:《穿越 Java 之 Web基础篇 》系列文章
请参考:《穿越 Java 之 开发必备框架篇 》 系列文章
请阅读:《穿越 Java 之 SpringBoot框架篇》系列文章
请阅读:《穿越 Java 之 SpringCloud微服务架构篇》 系列文章

原来的做法

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.68</version>
        </dependency>
@RequestMapping("/demo1")
    public void demo1(HttpServletRequest request, HttpServletResponse response) throws IOException {
        //1. 设置响应内容
        response.setContentType("application/json;charset=utf-8");

        //2. 拿流写回JSON字符串
        Map<String,String> data = new HashMap<>();
        data.put("name","张三");
        data.put("age", "20");

        String s = JSON.toJSONString(data);
        response.getWriter().write(s);
    }

Spring框架下

在Spring框架下,这种开发工作也可以简化。

  • 导入Jackson 的json库

         <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.11.2</version>
            </dependency>
    
  • 或者导入Gson 的json库

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

处理器方法:

原理

  • 当处理器的方法上标记 @ResponseBody , @RequestBody

  • 或者处理器的返回值类型是 HttpEntity 、 ReponseEntity 。

  • Spring内部的 HttpMessageConverter 会在 RequestMappingHandlerAdapter 处理器方法执行过程中,进行工作。

下面演示用 fastJson 来处理 JSON数据的返回:

写法:

  • 1.在这里插入图片描述

  • 2.在这里插入图片描述

  • 3.当一个类中的所有方法都是json数据时 相当于下图
    在这里插入图片描述依据是在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值