什么是json
JSON(JavaScript Object Notation、JavaScript 对象表示法) 是一种轻量级的数据交换格式,作用是储存和交换文本信息的语法。文件是以扩展名为.json
json储存数据的格式
json以“键值对”存储数据,先举两个简单例子直观了解一下:
var a ={“one”:“一”,“two”:“二”,“three”:“三”}
取值方法,a.one的值就是一。
var b={“A”:"[1,2,3,4,5,6,7]",“B”:"[a,b,c,d,e]"}
取值方法,b.A[0]的值就是1。
没有键值对的数组也是json
JSON 值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑(布尔)值(true 或 false)
数组(在中括号中)
对象(在大括号中)
Null
springboot怎么返回json对象呢
第一先将数据储存在类中(json格式就是键值对的关系,对象可以满足这个要求)
@Data
public class Person {
//编号
private String id;
// 姓名
private String name;
// 性别
private String gender;
}
简单的请求
@RestController
@RequestMapping("/json")
public class JsonController {
@GetMapping("/person/{id}")
public Person returnPersonJson(@PathVariable String id) {
Person person = new Person();
person.setId(id);
person.setName("Jim");
person.setGender("female");
return person;
}
}
启动项目,访问:localhost:8080/json/person/1
成功的返回的json格式的数据。
为什么能返回json对象呢
-
主要我们声明了@RestController注释的作用,它的作用等价于controller+@ResponseBody的作用。在需求中我们也可以不用@RestController注释,而在每个方法中使用@ResponseBody注释。
-
在这里是用的SpringBoot的默认的json框架jackson,声明@ResponseBody注释的方法上,才能自动输出为json数据格式
-
可以自定义sjon框架,比如使用fastJson框架用来对对象进行序列化