1.把Java对象转换成Json格式
1.1.导入依赖
这里推荐一个插件Jackson,其提供的类可以让Java的类转换成Jason格式文件
XML
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.3</version>
</dependency>
1.2.编写User类
java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
private int age;
private String address;
}
1.3.编写Controller类
java
//@RestController = @Controller + @ResponseBody
@RestController
public class UserController {
//这个注解可以让Controller不走视图解析器,而是返回一个字符串
//@ResponseBody
@RequestMapping("/json1")
public String Json1() throws JsonProcessingException {
User user = new User(1,"小明",18,"西安");
//Jackson里有个ObjectMapper类
ObjectMapper mapper = new ObjectMapper();
//将java对象转换成json格式
String str = mapper.writeValueAsString(user);
return str;
}
}
介绍几个注解
@ResponseBody:这个注解可以让Controller不走视图解析器,而是返回一个字符串
@RestController:@RestController = @Controller + @ResponseBody
结果
2.时间格式的转换
java
@RequestMapping("/json2")
public String Json2() throws JsonProcessingException {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(date);
System.out.println(date);
//Jackson里有个ObjectMapper类
ObjectMapper mapper = new ObjectMapper();
//将java对象转换成json格式
return mapper.writeValueAsString(format);
}
获取时间戳
Date date = new Date();
修改时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = sdf.format(date);
结果:
2.1.将复用性高的代码写成工具类
将上面时间格式转换并且以json格式输出的带代码编写成工具类,学习这种降低代码复用性的思想
2.1.1.编写工具类
java
public class JackUtils {
public static String getJson(Object object,String dateFormat) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
//修改时间格式("yyyy-MM-dd HH:mm:ss")
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
String format = sdf.format(object);
//将时间转换为Json格式
return objectMapper.writeValueAsString(format);
}
}
- 我们在看源码的时候,经常会有方法重载,同一个名字的方法,少一个参数,也能完成相同的工作,这样的方法,我们又该如何编写?
java
public static String getJson(Object object) throws JsonProcessingException {
return getJson(object,"yyyy-MM-dd HH:mm:ss");
}
- 下面这个方法只比上面的方法少了一个参数,下面的方法在编写的时候只需要return上面的方法,再把缺省的参数写死即可!
- 这种思想要学习,源码基本上都是这样写的