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);
}
}
分享到:
相关推荐
在IT行业中,Jackson库是Java领域广泛使用的JSON处理库,特别是在Spring框架中。"jackson-annotations"、"jackson-core"和...了解并熟练掌握这些知识点,对于进行Java Web开发,尤其是基于Spring的项目来说至关重要。
下面将分别详细介绍这些组件及其重要知识点。 1. **jackson-core**:这是Jackson框架的基础模块,提供了基本的JSON解析和生成功能。它包括了JsonParser和JsonGenerator两个主要类,分别用于读取和写入JSON数据。...
在Jackson 2.7中,有几个关键的知识点值得我们深入探讨: 1. **模块化设计**:Jackson 2.x引入了模块化体系结构,允许用户根据需求选择和组合不同的模块,如`jackson-databind`(核心数据绑定)、`jackson-core`...
以下是对Jackson 1.5中文帮助文档中的关键知识点的详细解释: 1. **JSON序列化与反序列化**:Jackson库提供了将Java对象转换为JSON格式(序列化)和从JSON数据创建Java对象(反序列化)的功能。这在API交互、存储或...
本文将深入探讨Jackson作为JSON转换工具的关键知识点,并基于提供的博文链接进行补充。 1. **Jackson库介绍** Jackson是一个开源项目,其核心库为`com.fasterxml.jackson.core`,包括`jackson-databind`、`jackson...
标签"jackSon"表明这是关于Jackson库的知识点。在实际应用中,开发者可能会遇到如何配置Jackson以适应不同的需求,例如自定义序列化器和反序列化器,处理日期和时间格式,或者处理复杂类型的JSON数据。同时,理解...
在使用Jackson 2.4时,有以下几个关键知识点: - **ObjectMapper**:这是databind模块中的核心类,负责处理Java对象与JSON之间的转换。你可以通过它进行序列化(对象转JSON)和反序列化(JSON转对象)操作。 - **...
下面将详细解释这一过程以及涉及的相关知识点。 1. JSON与Java对象映射: Jackson库通过`@JsonFormat`、`@JsonProperty`等注解使得JSON数据能够与Java对象的字段进行映射。例如,一个Java类可以有对应的JSON键值对...
让我们深入了解一下Jackson 2.2.3版本的核心特性和相关知识点。 1. **核心模块**: Jackson 2.x系列包括多个核心模块,这些模块提供了处理JSON的不同功能。在"jackson2.2.3"中,主要包括以下核心组件: - `...
以下是一些使用Jackson处理JSON的关键知识点: - **类型安全的反序列化**:Jackson可以通过类型信息(如类名)确保反序列化的对象类型与原始JSON匹配,避免了因类型错误导致的问题。 - **配置对象映射**:`...
以下是关于Jackson 2.6版本以及它在Spring MVC中的应用的详细知识点: 1. **Jackson库的核心组件**: Jackson库由多个模块组成,主要包括: - `jackson-databind`: 提供了`ObjectMapper`类,它是Jackson库的主要...
下面将详细阐述这两个技术在协同工作时的关键知识点。 首先,Jackson是Java中广泛使用的JSON处理库,它提供了多种API来解析、生成JSON数据。Jackson 2.5.3是一个稳定版本,包括了JsonParser、JsonGenerator、...
以下是一些使用Jackson的关键知识点: - **类型转换**:Jackson可以通过`ObjectMapper`自动将JSON字符串转换为Java对象,反之亦然。例如,`ObjectMapper.readValue()`可以将JSON字符串解析为Java对象,`...
以下将详细解释这些jar包及其相关知识点: 1. **jackson-core.jar**:这是Jackson框架的基础,提供了基本的JSON解析和生成能力。包括JsonParser和JsonGenerator类,用于流式处理JSON数据,以及ObjectMapper,它是...
以下是关于Jackson和其`JSONObject`相关的知识点: 1. **Jackson核心组件**: - `jackson-databind`:这是Jackson库的核心部分,提供了`ObjectMapper`,它是Jackson的主要入口点,用于将Java对象序列化为JSON和反...
从给出的部分内容中,我们可以提炼以下知识点: 1. 《Classical Electrodynamics》由David J. Jackson所著,并由Rudolph J. Magyar编辑,是电动力学领域的经典教材。第三版尤其受到广大教师和学者的认可,被认为是...
以下是关于Jackson与Spring 4.x集成及使用的详细知识点: 1. **Jackson版本兼容性**:描述中提到,对于Spring 4.x,推荐使用Jackson 2.6以上的版本。这是因为Spring 4.x在设计时已经考虑了与Jackson 2.x系列的兼容...
以下是该书中的几个关键知识点: 1. 静电学:这一部分主要探讨在静止电荷分布下产生的电场和电势,如高斯定律、库仑定律、电势的计算方法,以及电偶极矩和多极矩的概念。 2. 静电场的能量和力:书中详细解释了电场...
下面我们将详细探讨这些知识点。 1. **Jackson核心组件**: - **JsonParser**: 这是Jackson的流式解析器,允许开发者逐个读取JSON结构中的元素,如字段、值等,适合于大型或复杂的数据处理。 - **JsonGenerator**...
以下是关于Jackson入门的关键知识点: 1. **Streaming API**: - Jackson的Streaming API提供了一种低级、高性能的方式来处理JSON,适合大数据量或内存有限的情况。 - `JsonParser`用于读取JSON数据,而`...