jackson处理json

Posted hellobeicheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jackson处理json相关的知识,希望对你有一定的参考价值。

一,导入依赖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的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot Json框架 -- Jackson返回结果处理

使用 Jackson 处理未知的 JSON 属性

jackson处理json

Jackson处理对象和json之间转换的工具类

如何为 Jackson JSON 处理器设置 PROGUARD?

重学springboot系列之JSON处理工具类