目录
1. 关于JSON
1.1 JSON简介
1.2 JSON语法
1.3 JSON两种结构
2. 关于@RequestBody注解
2.1 没有该注解的情况
2.2 使用该注解后的情况
关于MVC项目前后端传参数据类型选择的总结:
在本专栏中已经介绍过关于Spring MVC项目传参的常见方式:
单个或多个参数:
【JavaEE】_Spring MVC 项目单个及多个参数传参-CSDN博客https://blog.csdn.net/m0_63299495/article/details/136436410对象传参:
【JavaEE】_Spring MVC项目之使用对象传参-CSDN博客https://blog.csdn.net/m0_63299495/article/details/136513718数组或集合传参:
【JavaEE】_Spring MVC项目使用数组与集合传参-CSDN博客https://blog.csdn.net/m0_63299495/article/details/136489044但在实际开发中,使用以上方式进行传参的扩展性非常差(对象相比而言稍强),当需求发生变更时,就需要修改接口;
注意此处的接口与SE阶段的interface不同,而是指API,是应用程序提供的服务,接口对应在代码上通常是指方法;
1. 关于JSON
1.1 JSON简介
1. JSON即JavaScript Object Notation,JavaScript对象表示法;
在Servlet部分前端POST请求使用json向后端传参时就曾提到过json,原文链接如下:
【JavaEE】_前端POST请求使用json向后端传参-CSDN博客https://blog.csdn.net/m0_63299495/article/details/1362865772. json就是一种数据格式,使用文本表示一个对象或数组的信息;
3. json本质是一个表示对象的字符串,负责在不同的语言中进行数据的传递和交换;
1.2 JSON语法
1. 数据在键值对(key-value)中,其中key必须为字符串(需用引号括起来);
2. 键与值用冒号分割,数据用逗号分隔;
3. 对象用{ }表示,数组用[ ]表示;
4. 值可以为对象,也可以为数组,数组中可以包含多个对象;
1.3 JSON两种结构
1. 对象:大括号{ }保存的对象是一个无序的键值对集合;
2. 数组:中括号[ ]保存的数组是值(value)的有序集合;
2. 关于@RequestBody注解
2.1 没有该注解的情况
现令.java文件内容如下:
package com.example.demo.controller;
import com.example.demo.Person;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
@RequestMapping("/Para")
@RestController
public class ParaControl服务器托管ler {
@RequestMapping("/M8")
public String m8(Person person){
return "Parameters have received: n"
+ person.toString();
}
}
运行启动类后,使用postman构造HTTP请求并发送,详情如下:
注意在默认情况下,使用对象进行传参时,默认请求数据组织形式为key-value形式,会使用key和属性进行匹配,比如,在请求的query string部分显式标明key-value形式参数,此时再进行发送:
可使用fiddler抓包查看HTTP请求详情:
并未将在请求中构造的该数据构成一个Person对象。
需要实现预期效果,需要使用@RequestBody属性;
2.2 使用该注解后的情况
@RequestBody [对象类型] [对象名]表示将请求的正文转成这个对象;
现令.java文件内容如下:
package com.example.demo.controller;
import com.example.demo.Person;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
im服务器托管port java.util.List;
@RequestMapping("/Para")
@RestController
public class ParaController {
@RequestMapping("/M8")
public String m8(@RequestBody Person person){
return "Parameters have received: n"
+ person.toString();
}
}
运行启动类后,再次构造HTTP请求并发送,详情如下:
即:若前后端传参传递的是JSON数据,需要使用@RequestBody注解;
但请注意JSON只能作为请求正文,不能作为参数的一部分(如QueryString部分某属性的值设置为JSON格式是不可以的),整个请求的正文都会被转换为一个对象;
关于MVC项目前后端传参数据类型选择的总结:
1. 在实际开发中,使用最多的数据格式为JSON,即使是单个参数,大多数情况下也是使用JSON的对象,只是仅有一个属性;
2. 在少数情况下,如果仅通过一个属性(比如id)就可以获取到想要的请求信息,就可以使用单个对象传参;
在开发中尽量新增而非修改代码,是大型开发中的重要思想。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
1.选择: 1.使用printf函数打印一个double类型的数据,要求:输出为10进制,输出左对齐30个字符,4位精度。以下哪个选项是正确的? A.%-30.4e B.%4.30e C.%-30.4f D.%-4.30 在上一篇文章中,提到了对于打印字符串时…