方法一
- 返回json数据需要加载json依赖
pom依赖
<!-- json解析工具包-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>
</dependency>
- 引用注解:
@RestController // 等同controller + resposeBody ,表示本控制器方法都返回json,有这种方法数据直接输出到页面上,不会走视图解析器
@RestController
@RequestMapping("json1")
public List<Users> json1() {
List<Users> list = new ArrayList<>();
list.add(new Users(101,"123","3123"));
list.add(new Users(102,"222","3123"));
list.add(new Users(103,"333","3123"));
list.add(new Users(104,"444","3123"));
return list;
}
方法二
- 方法boolean类型,和String类型
@RestController
@RequestMapping("json2")
public boolean json2() {
return true;
}
如果返回json是中文,设置字符编码
@RequestMapping(value = "json3" ,produces = "text/plain;charset=utf-8")
public String json3() {
return "葫芦娃";
}
方法三
- 使用ResponseEntity<>方法,自动转json,不需要手动声明注解,可以带状态码也可不带
@RequestMapping("json4")
public ResponseEntity<Users> json4() {
Users u1 = new Users(111,"111","111");
Users u2 = new Users(222,"222","222");
// 返回200状态码并带数据
// return ResponseEntity.ok(u1);
// 只返回状态,不带数据
// return ResponseEntity.ok().build();
// 指定状态码,带数据
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(u1);
}
方式四
- 传一个指定对象
@RequestMapping("json5")
public void json5(@RequestBody Users u) {
System.out.println("获取数据"+u);
}
方式五:统一json返回类
- 创建一个统一json返回类
- 无参构造没意义,可以自定义构造函数
package com.zking.util;
import lombok.Data;
@Data
public class Results {
private int code;// 状态码
private String msg; //消息
private Object data; // 数据
public Results(int code, String msg) {
this.code = code;
this.msg = msg;
}
public Results(int code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public static Results ok() {
return new Results(200,"success");
}
public static Results ok(String msg) {
return new Results(200,msg);
}
public static Results ok(String msg,Object data) {
return new Results(200,msg,data);
}
public static Results err( String msg) {
return new Results(500,msg);
}
}
- 自定义操作成功
@RequestMapping("json6")
public Results json6() {
List<Users> list = new ArrayList<>();
list.add(new Users(101,"123","3123"));
list.add(new Users(102,"222","3123"));
list.add(new Users(103,"333","3123"));
list.add(new Users(104,"444","3123"));
return Results.ok("操作成功!",list);
}