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

it2023-07-23  67

处理器的返回值-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)