@JsonIgnore无法正常工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@JsonIgnore无法正常工作相关的知识,希望对你有一定的参考价值。
由于某种原因,注释@JsonIgnore在我的项目中不起作用。我已经读过一些答案,这可能是由于使用不同的不兼容的Jackson版本(org.codehaus与com.fasterxml)造成的,但我只通过一个依赖(afaik)获取我的jackson库,所以这不应该是问题。
@Entity
@Table(name = "employee", schema = "klk")
public class Employee implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name = "id", unique = true, nullable = false)
private Integer id;
@Basic
@Column(name = "firstName", nullable = false)
private String firstName;
@Basic
@Column(name = "lastName", nullable = false)
private String lastName;
@Basic
@Column(name = "password", nullable = false)
@JsonIgnore
private String password;
@Basic
@Column(name = "token", unique = true)
@JsonIgnore
private String token;
Pom.hml:
<dependencies>
<!-- https://mvnrepository.com/artifact/com.eclipsesource.jaxrs/jersey-all-->
<dependency>
<groupId>com.eclipsesource.jaxrs</groupId>
<artifactId>jersey-all</artifactId>
<version>2.22.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-moxy -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>2.26</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.eclipse.persistence/eclipselink -->
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.6.4</version>
</dependency>
</dependencies>
输出:
{
"id":1,
"firstName": "John",
"lastName": "Doe",
"password": "password",
"token": "token
}
有人知道为什么注释在我的例子中不起作用?
答案
虽然,你得到了解决方案,但为了将来的参考,我正在写这个答案。
正如@JB Nizet在评论中指出的那样,你并没有使用杰克逊代替MOXy。而且,根据Jersey Documentation
下面列出的模块通过将各个JSON框架集成到Jersey中来提供对JSON表示的支持。目前,Jersey集成了以下模块以提供JSON支持:
- 莫西
- 用于JSON处理的Java API(JSON-P)
- 杰克逊
- 抛弃
因此,您需要删除MOXy库以解决此问题。
以上是关于@JsonIgnore无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章