`

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);

    }

}
分享到:
评论

相关推荐

    jackson-annotations、jackson-core、jackson-databind

    在IT行业中,Jackson库是Java领域广泛使用的JSON处理库,特别是在Spring框架中。"jackson-annotations"、"jackson-core"和...了解并熟练掌握这些知识点,对于进行Java Web开发,尤其是基于Spring的项目来说至关重要。

    jackson-databind jackson-annatation jackson-core jackson-mapper

    下面将分别详细介绍这些组件及其重要知识点。 1. **jackson-core**:这是Jackson框架的基础模块,提供了基本的JSON解析和生成功能。它包括了JsonParser和JsonGenerator两个主要类,分别用于读取和写入JSON数据。...

    jackson2.7-jar

    在Jackson 2.7中,有几个关键的知识点值得我们深入探讨: 1. **模块化设计**:Jackson 2.x引入了模块化体系结构,允许用户根据需求选择和组合不同的模块,如`jackson-databind`(核心数据绑定)、`jackson-core`...

    jackson 1.5中文帮助文档

    以下是对Jackson 1.5中文帮助文档中的关键知识点的详细解释: 1. **JSON序列化与反序列化**:Jackson库提供了将Java对象转换为JSON格式(序列化)和从JSON数据创建Java对象(反序列化)的功能。这在API交互、存储或...

    json转换工具jackson

    本文将深入探讨Jackson作为JSON转换工具的关键知识点,并基于提供的博文链接进行补充。 1. **Jackson库介绍** Jackson是一个开源项目,其核心库为`com.fasterxml.jackson.core`,包括`jackson-databind`、`jackson...

    jackson2.4+2.6

    标签"jackSon"表明这是关于Jackson库的知识点。在实际应用中,开发者可能会遇到如何配置Jackson以适应不同的需求,例如自定义序列化器和反序列化器,处理日期和时间格式,或者处理复杂类型的JSON数据。同时,理解...

    jackson2.4.rar

    在使用Jackson 2.4时,有以下几个关键知识点: - **ObjectMapper**:这是databind模块中的核心类,负责处理Java对象与JSON之间的转换。你可以通过它进行序列化(对象转JSON)和反序列化(JSON转对象)操作。 - **...

    jackson 对象json字符串数组集合互转

    下面将详细解释这一过程以及涉及的相关知识点。 1. JSON与Java对象映射: Jackson库通过`@JsonFormat`、`@JsonProperty`等注解使得JSON数据能够与Java对象的字段进行映射。例如,一个Java类可以有对应的JSON键值对...

    jackson2.2.3

    让我们深入了解一下Jackson 2.2.3版本的核心特性和相关知识点。 1. **核心模块**: Jackson 2.x系列包括多个核心模块,这些模块提供了处理JSON的不同功能。在"jackson2.2.3"中,主要包括以下核心组件: - `...

    最新的高性能 JSON 处理jackson-2.9.2.jar下载

    以下是一些使用Jackson处理JSON的关键知识点: - **类型安全的反序列化**:Jackson可以通过类型信息(如类名)确保反序列化的对象类型与原始JSON匹配,避免了因类型错误导致的问题。 - **配置对象映射**:`...

    jackson2.6 最新jar包

    以下是关于Jackson 2.6版本以及它在Spring MVC中的应用的详细知识点: 1. **Jackson库的核心组件**: Jackson库由多个模块组成,主要包括: - `jackson-databind`: 提供了`ObjectMapper`类,它是Jackson库的主要...

    spring4 jackson2.5.3.jar 包

    下面将详细阐述这两个技术在协同工作时的关键知识点。 首先,Jackson是Java中广泛使用的JSON处理库,它提供了多种API来解析、生成JSON数据。Jackson 2.5.3是一个稳定版本,包括了JsonParser、JsonGenerator、...

    jackson2.6 jar包(3个包)

    以下是一些使用Jackson的关键知识点: - **类型转换**:Jackson可以通过`ObjectMapper`自动将JSON字符串转换为Java对象,反之亦然。例如,`ObjectMapper.readValue()`可以将JSON字符串解析为Java对象,`...

    jackson的jar包

    以下将详细解释这些jar包及其相关知识点: 1. **jackson-core.jar**:这是Jackson框架的基础,提供了基本的JSON解析和生成能力。包括JsonParser和JsonGenerator类,用于流式处理JSON数据,以及ObjectMapper,它是...

    jackson jsonobject所需要的所有jar包

    以下是关于Jackson和其`JSONObject`相关的知识点: 1. **Jackson核心组件**: - `jackson-databind`:这是Jackson库的核心部分,提供了`ObjectMapper`,它是Jackson的主要入口点,用于将Java对象序列化为JSON和反...

    jackson电动力学答案

    从给出的部分内容中,我们可以提炼以下知识点: 1. 《Classical Electrodynamics》由David J. Jackson所著,并由Rudolph J. Magyar编辑,是电动力学领域的经典教材。第三版尤其受到广大教师和学者的认可,被认为是...

    jackson最新资源包适合spring4.X

    以下是关于Jackson与Spring 4.x集成及使用的详细知识点: 1. **Jackson版本兼容性**:描述中提到,对于Spring 4.x,推荐使用Jackson 2.6以上的版本。这是因为Spring 4.x在设计时已经考虑了与Jackson 2.x系列的兼容...

    jackson的经典电动力学

    以下是该书中的几个关键知识点: 1. 静电学:这一部分主要探讨在静止电荷分布下产生的电场和电势,如高斯定律、库仑定律、电势的计算方法,以及电偶极矩和多极矩的概念。 2. 静电场的能量和力:书中详细解释了电场...

    Jackson工具类

    下面我们将详细探讨这些知识点。 1. **Jackson核心组件**: - **JsonParser**: 这是Jackson的流式解析器,允许开发者逐个读取JSON结构中的元素,如字段、值等,适合于大型或复杂的数据处理。 - **JsonGenerator**...

    Jackson 入门Jackson 入门

    以下是关于Jackson入门的关键知识点: 1. **Streaming API**: - Jackson的Streaming API提供了一种低级、高性能的方式来处理JSON,适合大数据量或内存有限的情况。 - `JsonParser`用于读取JSON数据,而`...

Global site tag (gtag.js) - Google Analytics