一·导入Jackson的依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
二·封装成工具类
可以给前端返回时间,用SimpelDateFormat类进行格式化,也可以处理普通的对象、
public class JsonUtils {
public static String getJSON(Object o){
return getJSON(o,"yyyy-MM-dd HH:mm:ss");
}
//处理时间格式
public static String getJSON(Object o,String dateformat){
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
SimpleDateFormat sdf = new SimpleDateFormat(dateformat);
mapper.setDateFormat(sdf);
try {
return mapper.writeValueAsString(o);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
}
三·应用
处理时间对象:
@RequestMapping("/j1")
//@ResponseBody设置返回字符串不被解析
public String json1(){
Date date = new Date();
return JsonUtils.getJSON(date);
}
@ResponseBody设置返回字符串不被解析,也可以在类上加@RestController表示这个Controller里面所有方法返回值不会被视图解析器解析。
处理普通对象:
@RequestMapping(value = "/j2",produces = "application/json;characterEncoding=utf8")
public String json2(){
User user = new User("何志康", 3, "男");
return JsonUtils.getJSON(user);
}
@RequestMapping(value = "/j2",produces = "application/json;characterEncoding=utf8")
用于处理JSON乱码问题。
也可以在配置文件springmvc-servlet中配置,可以统一配置:
<!-- 乱码统一处理-->
<!-- 使用json一定要处理乱码问题!!!-->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
<property name="failOnEmptyBeans" value="false"/>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
处理集合对象:
@RequestMapping( "/j3")
public String json3(){
List<User> userList = new ArrayList<>();
User user = new User("何志康1号", 3, "男");
User user1 = new User("何志康2号", 3, "男");
User user2 = new User("何志康3号", 3, "男");
User user3 = new User("何志康4号", 3, "男");
User user4 = new User("何志康5号", 3, "男");
userList.add(user);
userList.add(user1);
userList.add(user2);
userList.add(user3);
userList.add(user4);
return JsonUtils.getJSON(userList);
}