SSM——SpringMVC返回值json处理



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

(1)什么是json

JavaScript Object Notation 脚本对象标签。

  • 用于存储数据的介质,类似于XML/HTML等。
  • Nosql 数据库Mongodb–》文档数据库。存储的是文档–》存储的JSON。
  • 用于数据的交互。以JSON的方式传递数据。

(2)json结构

  • {}包裹信息,里面是使用:隔开的key/value 一对一对的。
  • json里面还可以包裹json
    {“name”: “John Doe”, “age”: 18, “address”: {“country” : “china”, “zip-code”: “10000”}}

(3)为什么需要使用JSON交互开发

  • 请求客户端种类非常多,请求的方式有各种各样。导致服务端需要处理各种各样的方式的请求。不利于服务端统一开发。
  • 使用JSON交互可以很好兼容各种不同的终端发起的请求。
  • ajax请求
  • javaBean对象与json互转 如阿里巴巴的fastjson

(4)返回值转json @ResponseBody

注解加在方法上,SpringMVC可以自动将方法的返回对象转为json,发送给页面

(5)参数转json @RequestBody

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

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>

TestPersonToJson

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);
    }
    @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);
    }
}

pom.xml
依赖 jackson库

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

Demo02ReturnController

 @RequestMapping(path = "demo05.action",method = {
    
    RequestMethod.POST,RequestMethod.GET})//回显页面
    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
    }
    @RequestMapping(path = "demo06.action",method = {
    
    RequestMethod.POST,RequestMethod.GET})//回显页面
    public ModelAndView  test06(@RequestBody  Person person){
    
    //
        System.out.println("object:"+person);
       return null;
    }

(6)JSON交互的方式

  • (1)请求是JSON串,在controller方法的形参上使用@RequestBody注解,将请求的JSON串绑定到pojo对象。
  • (2)请求的是表单提交的方式。直接使用springMVC的参数绑定,不需要做转换。
  • 返回JSON串,在controller方法的返回数据类型前加上@ResponseBody注解,将返回的对象转换为JSON串。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41209886/article/details/109109543