问题描述
我有一个Java 1.7启动应用程序。它确实具有一些RESTful api。
我想将@JsonIgnore
添加到文件中,以便它不会在api中返回。
例如
Member.java
import com.fasterxml.jackson.annotation.JsonIgnore;
private java.lang.String username;
@JsonIgnore
private java.lang.String password;
不忽略密码。
"member": {
"password": "**************","username": "richard"
}
我认为@JsonIgnore
不起作用的原因是因为我使用了com.fasterxml.jackson.annotation.JsonIgnore
。我应该使用其他库中的其他注释吗?即我的jaxrs实现可能不是com.fasterxml.jackson
吗?我怎么知道?
IntelliJ类路径具有:
(我尝试过net.minidev.json.annotate.JsonIgnore
并没有成功)
更多信息:
pom.xml
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.3</version>
</dependency>
和
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.11.2</version>
</dependency>
这是问题吗?两个版本!我不确定2.0.5版本的来源,因为pom中没有定义它。
解决方法
在这种情况下,您不需要@JsonIgnore。您可以简单地忽略不需要反序列化的变量(在这种情况下为密码),而杰克逊将只返回用户名。