Day25 SpringMVC 返回值类型为Object 之json处理

处理器的返回值-json数据处理

1、什么时候使用到json?

ajax请求

2、javaBean对象与json互转,如:阿里巴巴的fastjson

pom.xml

     <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>fastjson</artifactId>
          <version>1.2.74</version>
      </dependency>
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
      </dependency>

TestPersnoToJson

import com.alibaba.fastjson.JSON;
import org.junit.Test;

public class TestPersnoToJson {
    @Test
    public void  test01(){
        Person p = new Person(1,"jack","1234");
        String json  =  JSON.toJSONString(p);//调用静态方法toJSONString,参数传入对象 ,将对象转成json
        System.out.println(json);//{"id":1,"password":"1234","username":"jack"}
    }
    @Test
    public void  test02(){
        String json = "{\"id\":1,\"password\":\"1234\",\"username\":\"jack\"}";
        Person p = JSON.parseObject(json,Person.class);//json转javaBean,参1,json  参2 类
        System.out.println(p);//Person{id=1, username='jack', password='1234'}
    }
}

3、返回值转json

@ResponseBody

作用:将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端。
当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。
如果返回值是字符串,那么直接将字符串写到客户端;如果是一个对象,会将对象转化为json串,然后写到客户端。

注解加在类上,表示该类下所有方法返回的数据直接写给浏览器。
注解加在方法上,SpringMVC可以自动将方法的返回对象转为json,发送给页面
Object 表示为任意对象。
pom.xml
依赖 jackson库

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

Demo02ReturnController

	@RequestMapping("demo05.action")
    //注解 @ResponseBody
    //注解加在方法上,SpringMVC可以自动将方法的返回对象转为json,发送给页面
    public @ResponseBody Object test05(){
        Person p1 = new Person(1,"jack","1234");
        Person p2 = new Person(2,"rose","1234");

        List<Person> list = new ArrayList<Person>();
        list.add(p1);
        list.add(p2);
        
        return list;//springmvc将 list使用ObjectMapper转成json
    }

在这里插入图片描述

4、参数转json @RequestBody

在形参的前边加上@RequestBody注解,该注解可以自动解析页面发送过来的json数据,解析完之后,自动的将json中的数据封装到形参对象

pom.xml
依赖 jackson库

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

Demo02ReturnController

	@RequestMapping("demo06.action")
    //参数转json @RequestBody
    //在形参的前边加上@RequestBody注解,该注解可以自动解析页面发送过来的json数据,解析完之后,自动的将json中的数据封装到形参对象
    public ModelAndView test06(@RequestBody Person person){//使用Postman传数据进行测试
        System.out.println("object:"+person);
        return null;
    }

使用Postman向服务器发送json数据
在这里插入图片描述
控制台打印
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值