zoukankan      html  css  js  c++  java
  • jackson json转bean忽略没有的字段 not marked as ignorable

    @JsonIgnore注解用来忽略某些字段,可以用在Field或者Getter方法上,用在Setter方法时,和Filed效果一样。这个注解只能用在POJO存在的字段要忽略的情况,不能满足现在需要的情况。
    @JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段,可以满足当前的需要。这个注解还可以指定要忽略的字段。使用方法如下:
    @JsonIgnoreProperties({ "internalId", "secretKey" })
    指定的字段不会被序列化和反序列化。
    ===========
    代码会返回tes对象为null

    复制代码
    public class tes {
    
    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> String a;
    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> String b;
    
    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String getA() {
        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> a;
    }
    
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> setA(String a) {
        </span><span style="color: #0000ff;">this</span>.a =<span style="color: #000000;"> a;
    }
    
    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String getB() {
        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> b;
    }
    
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> setB(String b) {
        </span><span style="color: #0000ff;">this</span>.b =<span style="color: #000000;"> b;
    }
    
    </span><span style="color: #0000ff;">public</span>  <span style="color: #0000ff;">static</span>  <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {
        String ss</span>="{"a":"aa","c":"c"}"<span style="color: #000000;">;
        tes t</span>=  JsonUtil.fromJson(ss,tes.<span style="color: #0000ff;">class</span><span style="color: #000000;">);
    </span><span style="color: #008000;">//</span><span style="color: #008000;"> tes t=   new Gson().fromJson(ss,tes.class);</span>
    

    }
    }

    复制代码

    解决方案:

    1
    2
    3
    4
    5
    6
    7
    8
    正确在class上加
    @JsonIgnoreProperties(ignoreUnknown = true)
    public class tes
     
    或者代码控制
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    objectMapper.readValue(json,cls);

      

  • 相关阅读:
    Object: Date对象——时间的设置和返回
    CSS基础知识-常用属性(updating)
    图像
    一些基础名词及含义(更新中)
    HTML常用元素合集(更新中)
    HTML小贴士-tips1
    HTML&CSS基础(一):基本格式(更新中)
    vue 轮播图显示三张图片,图片居中显示
    移动端 rem自适应布局 (750的设计稿)
    vue axios 在ios 中不执行回调(vconsole中status为0)
  • 原文地址:https://www.cnblogs.com/jpfss/p/10939176.html
Copyright © 2011-2022 走看看