Edv*_*hem 2 java spring spring-mvc jackson spring-restcontroller
我有一个包含以下字段及其各自的 getter 的类,以及一个附加方法getTotalBalance,我没有任何字段,但有一个自定义实现。
public class demo{
private String balance;
private String blockedBalace;
private String futureBalance;
private String availableBalance;
//getters for previous fields
public String getTotalBalance(){
//something..
}
Run Code Online (Sandbox Code Playgroud)
当我序列化此类的对象时,我得到以下 JSON 输出。
{
"balance": "12.30",
"blockedBalance":"23.45",
"futureBalance" :"56.22",
"availableBalance" :"12.30",
"totalBalance" : "34.11"
}
Run Code Online (Sandbox Code Playgroud)
即使我没有声明 的字段totalBalance,我最终还是将其序列化了。这怎么可能?
Jackson 默认使用 getter 进行序列化,使用 setter 进行反序列化。
您可以使用@JsonIgnoregetter 方法来忽略它,或者您可以将对象映射器配置为仅将字段用于序列化/des:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE);
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3304 次 |
| 最近记录: |