1. 程式人生 > 其它 >json返回前端的亂碼問題

json返回前端的亂碼問題

技術標籤: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);
    }