一、jackson的maven依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
二、实体类的建立
package cn.bjjs;
import org.apache.commons.lang3.builder.ToStringBuilder;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* 实体类
* @author nxd
*
*/
public class Person {
private Integer id;
private String name;
@JsonIgnore
private String hobbies;// 兴趣爱好
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHobbies() {
return hobbies;
}
public void setHobbies(String hobbies) {
this.hobbies = hobbies;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
三、测试类代码:
package cn.bjjs;
import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JSONTest {
public static void main(String[] args) throws IOException {
Person p = new Person();
p.setId(1001);
p.setName("huangbaokang");
p.setHobbies("篮球");
// 未加@JsonIgnore注解时,控制台打印输出{"id":1001,"name":"huangbaokang","hobbies":"篮球"}
// 加上@JsonIgnore注解时,控制台输出了{"id":1001,"name":"huangbaokang"},把hobbies的值过滤了。
System.out.println(new ObjectMapper().writeValueAsString(p));
}
}
分享到:
相关推荐
例如,可以使用`@JsonIgnore`注解来忽略某个字段,或者使用`@JsonProperty`仅包含特定字段。这样,无论何时序列化或反序列化对象,这些注解都会确保指定的字段不会出现在JSON中。 2. **动态过滤**: 动态过滤则是...
注解包含: 拦截器 , 过滤器 , 序列化 , @After , @AfterReturning , @AfterThrowing , @annotation , @Around , @Aspect , @Autowired , @Bean , @Before , @Component , @ComponentScan , @ComponentScans , @...
// 通过添加@JsonIgnore注解,使Jackson在获取属性值时,忽略该getter方法 @JsonIgnore public String getName() { return null; } // ... } ``` 在这个例子中,`getName()`方法会被Jackson忽略,不会出现...
@JsonIgnore:此注解用于在进行JSON序列化时忽略指定的属性。 @JoinColumn(name="loginId"):此注解用于指定外键列的名称,用于一对一或一对多的表关联。 @OneToOne、@OneToMany、@ManyToOne:这些注解分别对应于...
在这个例子中,由于`getAge()`方法被`@JsonIgnore`注解,所以在转换JavaBean到JSON时,`age`属性将不会出现在生成的JSON字符串中。 总的来说,Jackson库提供了强大的工具来处理JSON数据,包括将Java对象转换为JSON...
例如,我们可能会遇到日期的格式化问题,可以使用 @JsonFormat 注解来解决该问题。 Jackson 是一个功能强大且灵活的 JSON 处理器,在 Spring Boot 项目中,我们可以方便地使用 Jackson 来对 Java 对象进行 JSON ...
- **jackson-annotations**:包含了一系列注解,用于自定义序列化和反序列化的行为,如`@JsonProperty`、`@JsonInclude`和`@JsonIgnore`等,可以增强JSON表示的灵活性。 2. **Jackson 2.8.2 版本**: 这个版本是...
特别是当一个实体类中存在一对多或多对一的关系时,如果这些关系对应的字段不需要参与JSON序列化,就需要使用@JsonIgnore注解来标记这些字段。这样做可以确保在进行JSON转换时,那些被注解标记的字段不会被包含进...
使用这些注解,开发者可以自定义JSON的结构,处理复杂的序列化需求,例如忽略某些字段、处理日期格式、处理多态类型等。在2.2.3版本中,这些功能已经非常成熟,广泛应用于各种Java项目,尤其是Web服务和RESTful API...
在这个文档中,我们将重点讨论三个关键注解:`@JsonIgnore`, `@JsonFormat`, 和 `@JsonProperty`,以及如何使用 `JsonFilter` 实现动态数据列过滤。 `@JsonIgnore` 是一个非常实用的注解,当它被应用于一个属性上时...
最简单的方法是在实体类中使用`@JsonIgnore`注解来忽略特定字段的序列化,从而避免循环引用。 ```java public class Album { private String name; @JsonIgnore private List<Photo> photos = new ArrayList()...
3. `@JsonIgnore`: 如果不想让某个字段出现在序列化的JSON中,可以使用这个注解。 4. `@JsonInclude`: 控制哪些属性应该包含在序列化过程中。例如,可以使用`@JsonInclude(JsonInclude.Include.NON_NULL)`避免序列...
然而,有时我们需要更灵活的控制,不希望像使用注解那样一次性忽略所有不想序列化的字段。这时,我们可以利用Jackson的`@JsonIgnoreProperties`注解的变体,或者使用自定义的序列化和反序列化模块来实现这一目标。 ...
3. 支持注解:支持@JSON、@JSONIgnore等注解配置对象的序列化和反序列化。 4. 支持流:除了支持对象/JSON与字符串的相互转换,也支持与InputStream/OutputStream的相互转换,处理大数据时比较有用。 5. 无依赖:json-lib...
3. 支持多种注解配置序列化和反序列化:支持@JsonIgnore, @JsonFormat, @JsonView等多种注解配置对象与JSON的映射方式。 4. 高性能:jackson-databind基于Jackson Streaming API和基于类型的抽象序列化模式,性能优异...
这些注解包括`@JsonAutoDetect`、`@JsonProperty`、`@JsonIgnore`、`@JsonInclude`等,它们允许开发者精细控制序列化和反序列化过程。例如,`@JsonProperty`用于指定哪些字段应该被包括在JSON表示中,而`@JsonIgnore...
在Java开发中,JSON对象(JSONObject)常用于数据交换,特别是在前后端交互中。当我们序列化或反序列化Java...通过结合使用自定义注解、序列化器和反序列化器,我们可以实现更为复杂的过滤策略,满足特定的业务需求。
开发者可以使用这些注解来控制JSON字段如何映射到Java类的属性上,或者自定义序列化和反序列化过程。常见的注解有`@JsonProperty`、`@JsonIgnore`、`@JsonInclude`、`@JsonCreator`等。例如,`@JsonProperty`用于...
通过以上注解的使用,我们可以轻松地定义和管理实体类与数据库之间的映射关系,从而简化了数据访问层的开发工作。这些注解不仅提供了强大的功能,还大大提高了代码的可维护性和可扩展性。对于初学者而言,熟练掌握...
例如,如果我们想要忽略某个属性不参与序列化,可以使用`@JsonIgnore`注解: ```java public class User { @JsonIgnore private String password; // other fields and methods } ``` 在源码层面,Jackson的...