json返回前端的乱码问题
程序员文章站
2024-01-31 14:24:40
...
在学习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);
}
上一篇: python csv写文件,用Excel打开中文乱码解决
下一篇: 节流和防抖的说明和实现