`

jackson知识点

阅读更多
1. jackson处理boolean类型的注意点

在使用jackson处理boolean类型的时候,比如你的java bean有一个boolean类型的字段:isTitle, 默认把这个Java bean
转换为json的时候,这个字段就变成了title,因此如果想在转换转换的json中保持原始的字段名称的话,可以在java bean中采用下面的例子进行处理:
也就是使用@JsonProperty@JsonIgnore注解
public class User {
 
    private int id;
 
    @JsonProperty("isMale")
    private boolean isMale;
 
    private String name;
 
    public User() {
    }
 
    public User(int id, boolean isMale, String name) {
        this.id = id;
        this.isMale = isMale;
        this.name = name;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    @JsonIgnore
    public boolean isMale() {
        return isMale;
    }
 
    public void setMale(boolean isMale) {
        this.isMale = isMale;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
}


2.忽略空字符串转成java bean的enum属性. (在spring mvc时常遇到)

在做spring mvc时, 上传的参数为json格式, 转换成相应的java bean. java bean中有enum类型,上传的json格式中把这相应的属性设置为空字符串, 在默认的情况下, jackson转换会出错.

如有一个java bean
public class Student {
    private String name;

    private int age;

    private PersonType personType;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public PersonType getPersonType() {
        return personType;
    }

    public void setPersonType(PersonType personType) {
        this.personType = personType;
    }


    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Student{");
        sb.append("name='").append(name).append('\'');
        sb.append(", age=").append(age);
        sb.append(", personType=").append(personType);
        sb.append('}');
        return sb.toString();
    }
}


有一个enum类
public enum PersonType {
    man, woman;
}


json到javabean的转换测试

public class JsonTest {
    public static void main(String[] args) throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        //这个选项可以处理空字符串换enum出错的问题
        objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);

        Student s = new Student();
        s.setAge(1);
        s.setName("wen");
        s.setPersonType(PersonType.man);

        System.out.println(objectMapper.writeValueAsString(s));

        //@Language("JSON") String json = "{\"name\":\"wen\",\"age\":1,\"personType\":\"man\"}";
        @Language("JSON") String json = "{\"name\":\"wen\",\"age\":1,\"personType\":\"\"}";

        Student v = objectMapper.readValue(json, Student.class);
        System.out.println(v);

    }

}
分享到:
评论

相关推荐

    软件工程知识点

    软件工程:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料。 软件工程是一门关于软件开发与维护的工程学科,它涉及软件生产的各个方面,能够为经济、高效地开发高...

    JAVA核心知识点整理.pdf

    涵盖JVM、集合、多线程、Spring、微服务、Netty、Zookeeper、Kafka、RabbitMQ、设计模式、数据库、算法、数据结构、分布式、缓存、大数据等知识点全面整理。

    feign以XML格式传输-技术点eureka-feign-jackson.zip

    知识点:feign以XML格式传输,domain通过Jackson转成XML, 项目总体理解:此文档搭建了eureka注册中心,和生产者,以及feign消费者。feign消费者以XML格式传输数据

    移动应用开发技巧以及入门教程知识点总结.docx

    平台选择:理解并选择合适的移动操作系统平台...JSON解析:能使用Gson、Jackson、JSONModel等进行JSON数据解析与序列化。 GPS定位:了解并实现GPS和网络定位功能,处理地理坐标转换与地图展示。 推送通知:掌握Fireb

    文件互传(自家用),含打包好的apk与jar,含该项目的AndroidStudio与Eclipse源码

    项目包含的知识点如下: Eclipse(java):JSON的应用、JFileChooser的应用、sun.misc.BASE64Encoder在Eclipse的应用、 Andriod Studio(java):Jackson的应用、Handler多线程间通信、自定义Adapter、Fontawesome在...

    二级C语言公共基础知识

    最新二级公共基础知识填空40题+80选择题 (1) 算法的复杂度主要包括______复杂度和空间复杂度。 答:时间 (2) 数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。 答:模式#逻辑模式#概念模式 (3) 若...

    机械原理ppt.zip

    东北大学机械原理ppt,包括连杆机构、齿轮、凸轮、机构分析等知识点,是期末复习以及考研的优质资料,希望可以帮到大家

    Spring Cloud Finchley SR2全套(集成Spring Gateway)

    ## Zuul中的超时配置,其中有个知识点就是hystrix的超时时间要大于ribbon的超时时间, ## 而ribbon的超时时间不是简单的ReadTimeout+ConnectTimeout那么简单它的规则简单用公式来说就是 ## ribbonTimeout = (Read...

    java开源包1

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包11

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包2

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包3

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包6

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包5

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包10

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包4

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包8

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包7

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包9

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包101

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

Global site tag (gtag.js) - Google Analytics