码迷,mamicode.com
首页 > Web开发 > 详细

jackson处理json

时间:2020-07-31 19:15:34      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:视图   eva   ret   har   ilo   mic   alt   notice   control   

一,导入依赖jar包

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.0</version>
</dependency>

使用jackson踩坑

new ObjectMapper对象 里面有个String writeValueAsString(Object o) 可以把对象转换为json对象

在spring 的 Controller中怎么不走视图解析器呢?

在前后端分离的时候,后台一般只返回json字符串,不经过view解析器

@ResponseBody :在方法加上这个注解,return 就会 直接返回一个字符串
技术图片

或者用Annotation "@RestController" 会起到一样的效果 notice:和@ResponseBody 不同的是他会使得这个类中所有方法都不走视图解析器
技术图片
请求返回结果
技术图片

json字符串乱码时,spring 提供了解决方案

技术图片

  1. 在spring配置文件中加上下方的脚本代码,一劳永逸
<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>
  1. 在@RequestMapping中设置,每个都要配置,繁琐
    技术图片
    produces属性
    @RequestMapping(value = "/test",produces ="application/json;charset=utf-8")

当用来转换Date时

技术图片
技术图片
可以看到返回了一个时间戳TimeStamp,这不是我们想要的格式!下面介绍两种方案解决

1.用java代码实现 在解析前用SimpleDateFormat转换格式

技术图片
技术图片

2.用jackson里的方法

        ObjectMapper mapper = new ObjectMapper();
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
        mapper.setDateFormat(simpleDateFormat);
        String s = mapper.writeValueAsString(date);
        return s;

技术图片

jackson处理json

标签:视图   eva   ret   har   ilo   mic   alt   notice   control   

原文地址:https://www.cnblogs.com/hellobeicheng/p/13411076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!