1.把Java对象转换成Json格式
1.1.导入依赖
这里推荐一个插件Jackson,其提供的类可以让Java的类转换成Jason格式文件
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.3</version></dependency>
1.2.编写User类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private int id;private String name;private int age;private String address;
}
1.3.编写Controller类
//@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.时间格式的转换
@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.编写工具类
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);}
}
- 我们在看源码的时候,经常会有方法重载,同一个名字的方法,少一个参数,也能完成相同的工作,这样的方法,我们又该如何编写?
public static String getJson(Object object) throws JsonProcessingException {return getJson(object,"yyyy-MM-dd HH:mm:ss");}
- 下面这个方法只比上面的方法少了一个参数,下面的方法在编写的时候只需要return上面的方法,再把缺省的参数写死即可!
- 这种思想要学习,源码基本上都是这样写的