我在jackson中遇到了一个奇怪的行为。
任何以is
开头的方法名,如ishey
,都会使用jackson打印到JSON文件中。 还有人遇到过这种行为吗? 我写了一个玩具程序来说明它
我使用maven作为构建工具。 独立程序在Netbeans 11中运行,但问题仍然存在于maven在命令行中创建的jar中。
操作系统:Oracle Linux Server Release 7.8
package com.hello.jackson;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
public class check {
public int hello=1;
public check() {}
public boolean isHey() {
return true;
}
public static void main(String[] args) throws IOException {
ObjectMapper om = new ObjectMapper();
check hello = new check();
om.writeValue(new File("/hariom/.dump/dump1.json"), hello);
}
}
运行程序时,转储文件的内容为:
{"hello":1,"hey":true}
您可以使用@jsonignore
跳过不希望出现在JSON中的方法/字段:
@JsonIgnore
public boolean isHey() {
return true;
}
但通常最好将数据对象和功能分开。 一方面是为了避免这类问题,另一方面也是为了让您可以升级其中一个而不影响另一个。