jackson json转bean忽略没有的字段 not marked as ignorable

本文介绍如何使用@JsonIgnoreProperties注解来忽略JSON中类不存在的字段,确保解析过程不会因未知属性而失败。提供了两种实现方式:一是直接在类声明处使用注解;二是通过配置ObjectMapper忽略未知属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@JsonIgnore注解用来忽略某些字段,可以用在Field或者Getter方法上,用在Setter方法时,和Filed效果一样。这个注解只能用在POJO存在的字段要忽略的情况,不能满足现在需要的情况。


@JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段,可以满足当前的需要。这个注解还可以指定要忽略的字段。使用方法如下:

@JsonIgnoreProperties({ "internalId", "secretKey" })
指定的字段不会被序列化和反序列化。
===========
代码会返回tes对象为null
public class tes
{

private String a ;

private String b;

public String getA()
{
return a;
}

public void setA(String a)
{
this.a = a;
}

public String getB()
{
return b;
}

public void setB(String b)
{
this.b = b;
}

public static void main(String[] args)
{
String ss="{\"a\":\"aa\",\"c\":\"c\"}";
tes t= JsonUtil.fromJson(ss,tes.class);
// tes t= new Gson().fromJson(ss,tes.class);
}

}======
正确在class上加
@JsonIgnoreProperties(ignoreUnknown = true)
public class tes


或者代码控制
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.readValue(json,cls);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值