jackson是目前比较好的json解析工具
使用Jackson必须导入Jackson的包(jackson-databind),最好在官网找最新的包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
配置乱码问题:
<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>
- 可以将Jackson方法写到一个工具类中使用,提高了代码的复用性
package pri.rong.utils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.text.SimpleDateFormat;
public class JsonUtiles {
public static String getJson(Object object){
return getJson(object,"yyyy-MM-dd HH:mm:ss");
}
public static String getJson(Object object,String dateFormat){
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
SimpleDateFormat format = new SimpleDateFormat(dateFormat);
mapper.setDateFormat(format);
try {
return mapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
}
-
jackson中的ObjectMapper可以将对象转化为字符串
-
@Controller//走视图解析器
-
@RestController//不走视图解析器,标志着下面类的全部方法返回的是字符串
-
@ResponseBody是配合@Controller来使用的,使方法不通过视图解析器来执行
-
使用Jackson中ObjectMapper的方式格式化输出时间,,Jackson默认实惠吧时间转成timestamps(时间戳)形式