首页 > 其他分享 >UnrecognizedPropertyException: Unrecognized field 解决

UnrecognizedPropertyException: Unrecognized field 解决

时间:2023-06-30 22:12:56浏览次数:29  
标签:序列化 String private field rate UnrecognizedPropertyException Unrecognized JsonIgn

转载请注明出处:

  在项目得不同环境上对接外部的服务接口,且存在不同版本间可能有字段不同得问题,遇到这种问题在使用jackson解析时,如果格式化得字符串与定义得java类不能完全对应时,就会报错:Unrecognized field ,代码还原:

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;

public class CounterEntity {
    private long inoctets;

    @JsonProperty("avg-bit-rate")
    private long avgBitRate;

    @JsonProperty("avg-octet-rate")
    private long avgOctetRate;

    public static void main(String[] args) {
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            String jsonStr = "{\"pkts\":0,\"octets\":0,\"inpkts\":0,\"inoctets\":0,\"avg-bit-rate\":0,\"avg-octet-rate\":0,\"avg-packet-rate\":0,\"rt-bit-rate\":0,\"rt-octet-rate\":0,\"rt-packet-rate\":0}";
            CounterEntity entity = objectMapper.readValue(jsonStr, CounterEntity.class);
            System.out.println(entity);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

  运行main方法,报错如下:

   

  解决方案,在转换得类上使用 这个注解 @JsonIgnoreProperties(ignoreUnknown = true) ,该注解会在解析的时候,会自动忽略一些不存在得属性。通过以下方式就可以正常得序列化和反序列化。

 

  @JsonIgnoreProperties是一个Jackson库提供的注解,用于标记在序列化和反序列化过程中需要忽略的属性。它可以应用于类级别和属性级别。 在类级别上使用@JsonIgnoreProperties注解,可以指定要忽略的属性列表。例如:

@JsonIgnoreProperties({"field1", "field2"})
public class MyClass {
    private String field1;
    private String field2;
    private String field3;

    @JsonIgnoreProperties
    private String field4;
}

 

标签:序列化,String,private,field,rate,UnrecognizedPropertyException,Unrecognized,JsonIgn
From: https://www.cnblogs.com/zjdxr-up/p/17517901.html

相关文章

  • Markov Transition Field,马尔可夫转移场(matlab版)
    MarkovTransitionField,马尔可夫转移场(matlab版)将一维时间序列转成二维数据可以对原数据进行更好地表征,从而基于新的表征结合深度学习机器视觉技术来发掘更多的规律和信息。这使得MarkovTransitionField,马尔可夫转移场在金融,能源电力,水利,气象、机械设备,交通等领域时间序列分析......
  • 海康SDK注册报错 Structure.getFieldOrder() on class com.xxx.sdk.HCNetSDK$NET_DVR_
    Structure.getFieldOrder()onclasscom.xxx.sdk.HCNetSDK$NET_DVR_DEVICEINFO_V30doesnotprovideenoughnames[0]海康依赖的版本较低,项目引用的较高,导致海康注册报错,所以降低jna版本 <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna<......
  • opcenter camstar designer基础知识--Fields
    点击工具栏的Fields 最左侧的窗格包含一个选择树,其中列出了所有可用的字段类型类别。展开类别可显示更具体的字段类型定义。右键单击字段类型可执行以下任务:• add添加字段定义• Rename重命名字段定义• Remove移除字段定义“重命名字段定义”和“移除字段......
  • POJ 2019 Cornfields(简单二维RMQ)
    思路:二维RMQ#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;constintMAXN=255;intval[MAXN][MAXN];intdmin[MAXN][MAXN][8][8];intdmax[MAXN][MAXN][8][8];voidinitRMQ(intn,intm){for(inti=1;i<=n;i++)......
  • opcenter camstar designer基础知识--Field
    Field界面为CDO中field的属性界面1. General常规 2. Options选项  3.AdvancedOptions高级选项  4.Expressions表达式  支持的表达式,仅CVE和DVE支持表达式;DV不支持。初始化对象时,系统会尝试从数据库中获取字段的值(如果存在)。注释:初始化时不计......
  • django 中存储手机号的字段, 使用 Django 库 pip install django-phonenumber-field[ph
    原文参见:https://www.delftstack.com/zh/howto/django/django-phone-number-field/使用第三方Django应用程序的 PhoneNumberField 存储电话号码要存储电话号码,我们可以使用实现此字段的第三方Django应用程序或库:PhoneNumberField。你可以在此处找到此库或应用程序的Git......
  • pandas.errors.ParserError: Error tokenizing data. C error: Expected 9 fields in
    用pandas读取csv格式文件时,里面有的行比前面的行多出好多列,会报下面的错df=pd.read_csv(file_name_csv,encoding="GBK")File"pandas\_libs\parsers.pyx",line905,inpandas._libs.parsers.TextReader._tokenize_rowsFile"pandas\_libs\parsers.pyx",line......
  • Field Reduction USACO - 641
    题目链接:http://www.usaco.org/index.php?page=viewproblem2&cpid=641&lang=en题意:有n(3<n<50000)头牛你需要给这n头牛建造围栏。坐标范围1-40,000。围栏的面积越小越好。你需要删除1头牛来减小围栏面积思路:1.因为只能删除1头牛来减少围栏面积,所以只能删除最靠边缘的牛,否则......
  • django 自定义FileField upload_to上传路径
    defuser_directory_path(instance,name):"""clean_data内容:fork,vinclean_data:K:fileV:record1301DL00220230602全部.txtK:nameV:record1301DL00220230602全部.txt"""filename=name[15:2......
  • IOS学习-UITextField
    《iOS8开发指南》,自己总结用UITextField文本框(UITextField)是一种常见的信息输入机制,类似于Web表单中的表单字段。文本框基础常用属性(1)boderStyle属性:设置输入框的边框线样式(2)backgroundColor属性:设置输入框的背景颜色,使用其font属性设置字体。(3)clearButtonMode属性:设置......