json返回前端的亂碼問題
阿新 • • 發佈:2021-01-04
技術標籤:json
在學習json解析的過程中,使用springmvc在前端返回一個jackson物件對映器將物件轉換為json字串時,引起亂碼問題;
解決方法有兩種:
一:使用 @RequestMapping(value="/*",produces = “application/json;charset = utf-8” )
二:使用配置(使用第三方Jackson的解決方法)
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true" >
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<!--這個需要匯入第三方Jackson包-->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" >
<property name="ObjectMapper">
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
<property name="failOnEmptyBeans" value="false"></property >
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
在進行java.util.date時間輸出時,會轉換成時間戳(Time stamp)格式(1609682783263)1970年1月1日到當前時間
@RequestMapping(value="/time")
@ResponseBody //將伺服器端返回的物件轉換為json物件響應回去
public String json() throws JsonProcessingException {
Date date = new Date();
return new ObjectMapper().writeValueAsString(date);
}
將其轉換為:yyyy-MM-dd HH-mm-ss
@RequestMapping(value="/time1")
@ResponseBody //將伺服器端返回的物件轉換為json物件響應回去
public String json3() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
//1.關閉Jackson的時間戳功能
mapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS,false);
//2.通過SimpleDateForMat進行時間格式的轉換
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
//3.通過setsetDateFormat()指定時間格式
mapper.setDateFormat(simpleDateFormat);
Date date = new Date();
return mapper.writeValueAsString(date);
}