首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何保留用于设置JsonSubTypes的属性?

保留用于设置JsonSubTypes的属性的方法是使用@JsonTypeInfo注解来指定类型信息。@JsonTypeInfo注解可以在父类或接口上使用,用于指定子类或实现类的类型信息。具体来说,可以使用@JsonTypeInfo注解的属性包括:

  1. use:指定类型信息的使用方式,可选值为JsonTypeInfo.Id.CLASS、JsonTypeInfo.Id.MINIMAL_CLASS、JsonTypeInfo.Id.NAME、JsonTypeInfo.Id.NONE。其中,JsonTypeInfo.Id.CLASS表示使用类的全限定名作为类型信息,JsonTypeInfo.Id.MINIMAL_CLASS表示使用类的简单名称作为类型信息,JsonTypeInfo.Id.NAME表示使用自定义的名称作为类型信息,JsonTypeInfo.Id.NONE表示不使用类型信息。
  2. include:指定类型信息的包含方式,可选值为JsonTypeInfo.As.PROPERTY、JsonTypeInfo.As.EXISTING_PROPERTY、JsonTypeInfo.As.WRAPPER_ARRAY、JsonTypeInfo.As.WRAPPER_OBJECT、JsonTypeInfo.As.EXTERNAL_PROPERTY。其中,JsonTypeInfo.As.PROPERTY表示将类型信息作为属性添加到JSON中,JsonTypeInfo.As.EXISTING_PROPERTY表示将类型信息作为已存在的属性添加到JSON中,JsonTypeInfo.As.WRAPPER_ARRAY表示将类型信息作为数组包装添加到JSON中,JsonTypeInfo.As.WRAPPER_OBJECT表示将类型信息作为对象包装添加到JSON中,JsonTypeInfo.As.EXTERNAL_PROPERTY表示将类型信息作为外部属性添加到JSON中。
  3. property:指定类型信息的属性名称,默认为"@class"。
  4. visible:指定类型信息是否可见,默认为false。

通过使用@JsonTypeInfo注解,可以在父类或接口中设置类型信息,然后在子类或实现类中使用@JsonSubTypes注解来指定子类或实现类的具体类型。这样,在序列化和反序列化过程中,就可以正确地保留用于设置JsonSubTypes的属性。

以下是一个示例代码:

代码语言:txt
复制
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
    @JsonSubTypes.Type(value = Cat.class, name = "cat"),
    @JsonSubTypes.Type(value = Dog.class, name = "dog")
})
public abstract class Animal {
    private String name;
    
    // getters and setters
}

public class Cat extends Animal {
    private int age;
    
    // getters and setters
}

public class Dog extends Animal {
    private String breed;
    
    // getters and setters
}

public class Main {
    public static void main(String[] args) {
        Animal cat = new Cat();
        cat.setName("Tom");
        ((Cat) cat).setAge(3);
        
        ObjectMapper mapper = new ObjectMapper();
        try {
            String json = mapper.writeValueAsString(cat);
            System.out.println(json);
            
            Animal deserializedCat = mapper.readValue(json, Animal.class);
            System.out.println(deserializedCat.getName());
            System.out.println(((Cat) deserializedCat).getAge());
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}

在上述示例中,通过@JsonTypeInfo注解在父类Animal上设置了类型信息,使用@JsonSubTypes注解在子类Cat和Dog上指定了具体的类型。在序列化过程中,会将类型信息作为属性添加到JSON中;在反序列化过程中,会根据类型信息正确地将JSON转换为对应的子类对象。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):提供高可靠、低成本的云端存储服务,适用于图片、音视频、文档等各类数据的存储和管理。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云云服务器(CVM):提供弹性、安全、稳定的云服务器,支持多种操作系统和应用场景,适用于网站托管、应用部署、数据备份等需求。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等,可用于智能客服、智能推荐、智能监控等场景。详情请参考:https://cloud.tencent.com/product/ai
  • 腾讯云区块链服务(BCS):提供安全、高效的区块链解决方案,支持快速搭建和管理区块链网络,适用于供应链金融、溯源追踪、数字资产等领域。详情请参考:https://cloud.tencent.com/product/bcs
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

InfluxDB 设置数据保留策略,验证保留数据存储大小

需求 在使用Telegraf+InfluxDB+Grafana监控服务器资源时候,如果influxdb中数据不设置超时过期机制的话,那么数据就会默认一直保存。...1.基本概念说明 1.1 InfluxDB 数据保留策略说明 InfluxDB数据保留策略(RP)用来定义数据在InfluxDB中存放时间,或者定义保存某个期间数据。...一个数据库可以有多个保留策略, 但每个策略必须是独一无二。 1.2 InfluxDB数据保留策略目的 InfluxDB本身不提供数据删除操作, 因此用来控制数据量方式就是定义数据保留策略。...replicaN 副本个数:1 代表只有一个副本 default 是否默认策略:true 代表设置为该数据库默认策略 2.2 新建数据保留策略 # 新建一个策略 CREATE RETENTION POLICY...> drop retention POLICY "role_01" ON "telegraf" > # 查看删除后策略,可以看到剩余策略autogen并不会自动设置为默认default策略 >

11K41

如何保留原本所有样式绑定和用户设置情况下,设置和还原 WPF 依赖项属性

场景和问题 现在,我们假想一个场景(为了编代码方便): 有一个窗口,设置了一些样式属性 现在需要将这个窗口设置为全屏,这要求修改一些原来属性(WPF 自带那设置有 bug,我会另写一篇博客说明) 取消设置窗口全屏后...而我们通过在 XAML 或 C# 代码中直接赋值,设置是“本地值”。因此,如果设置了本地值,那么更低优先级样式当然就全部失效了。 那么绑定呢?绑定在依赖项属性优先级中并不存在。...但是,SetCurrentValue 就是干这件事! SetCurrentValue 设计为在不改变依赖项属性任何已有值情况下,设置属性当前值。...,就还原了此依赖项属性一切设置值: 1 _window.InvalidateProperty(Window.WindowStyleProperty); 注意不是 ClearValue,那会清除本地值...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后作品务必以相同许可发布。

16220

如何优雅设置UI库组件属性

UI库提供了很多组件,组件又带有很多属性,有一些常用属性我们可以记住并且手撸,但是有些不常用属性,或者需要设置多个属性,这样情况下写起来就麻烦了,有时候还要打开帮助文档看看属性是怎么设定,需要设置什么样属性值...那么有没有优雅方式来设置组件各种属性呢?我做了一个在线小工具,可以方便设置属性,并且可以实时看到效果。...,设置对应属性,按需设置,不显示“无效”属性; 可以实时显示效果,设置属性后可以立即看到效果,方便调整属性设置属性可以生成js对象和模板代码,支持 json 格式; 大部分属性值都可以通过鼠标点击方式生成...因为不同小类需要属性是不同,细分一下可以缩小备选属性范围,设置起来更清晰,否则像官网那样,各种属性都堆在一起,还得分辨一下是否是支持某个小类。...基础属性 表单里组件共有的属性: 基本上表单里组件都需要这几个属性,所以拿出来作为基础属性,一起设置。 扩展属性按照分类分别设置

1.7K10

openFileDialogFilter属性设置

OpenFileDialog对话框Filter属性说明:          首先说明一个示例,分析一下Filter属性构成:“ Excel文件|*.xls ”,前面的“Excel文件”成为标签,是一个可读字符串...需要筛选特定文件,设置Filter属性为“标签|*.后缀”,按照这个格式设置,标签可以自定义,是字符串即可,后缀表示你需要筛选文件后缀,例如“.txt、.doc”等 3. ...需要筛选多种文件,比方说需要筛选图片文件,但是图片文件后缀有几种,例如jpg、png、gif等,当需要同时筛选这些文件,设置Filter属性为“标签|*.jpg;*.png;*.gif”,注意:只是在筛选器中多添加了几个后缀...这种情况下只需要多设置几个筛选器即可,filter属性设置如下:“标签1|*.jpg|标签2|.png|标签3|.gif”。注意:不同筛选器之间使用“|”分隔即可。...Filter属性类似与正则表达式,试用*表示匹配文件名字符,使用“.后缀”匹配文件后缀名,通过连接后缀(试用;号将需要后缀分开)表示同时筛选所有的符合后缀文件,通过“|”连接不同筛选器表示通过用户选择后缀名称来进行文件筛选

1.6K70

EasyCVR告警预案新增录像保留天数设置

EasyCVR平台告警功能,可以对监控设备上传告警(离线、遮挡、故障等)及AI监测异常情况进行及时告警,支持对告警时刻进行抓拍、录像,并能通过语音、短信、APP、消息通知、微信、邮件等方式,将告警消息推送给管理人员...感兴趣用户可以在博客中搜索相关文章进行查看。近期我们对EasyCVR平台告警预案新增了告警录像保留天数配置,今天来具体介绍一下。...在easycvr.ini配置文件中,修改alarm_record_clear_interval参数,即可设置告警录像保留天数,如图:在告警预案配置中,用户可以通过设置报警级别、报警方式、报警类型、事件类型来触发告警预案...EasyCVR视频融合平台基于云边端架构,可支持海量视频汇聚管理,平台可在复杂网络环境中,将分散各类视频资源进行统一汇聚、整合、集中管理,实现视频资源鉴权管理、按需调阅、全网分发、智能分析等。...结合AI智能分析网关,可实现云、边、端智能协同,完成业务场景下态势智能感知、数据分析与分发、智能预测、辅助决策等服务。

26530

Jackson父子类多态处理(注解实现)

JsonTypeInfo.Id.CUSTOM 自定义识别码,由@JsonTypeIdResolver对应 JsonTypeInfo.Id.NONE 不使用识别码 include(可选):指定识别码是如何被包含进去...,它有下面几个可选值: 枚举值 作用 JsonTypeInfo.As.PROPERTY 作为数据兄弟属性 JsonTypeInfo.As.EXISTING_PROPERTY 作为POJO中已经存在属性...作为一个包装数组 property(可选):制定识别码属性名称: 此属性只有当: use为JsonTypeInfo.Id.CLASS(若不指定property则默认为@class)、JsonTypeInfo.Id.MINIMAL_CLASS...1.2 @JsonSubTypes注解 作用于类/接口,用来列出给定类子类,只有当子类类型无法被检测到时才会使用它,一般是配合@JsonTypeInfo在基类上使用,比如: @JsonSubTypes...在反序列化对象时,@JsonSubTypes.Type根据name属性不同,来转化为不同子类对象 */ private String contentType; private

2.2K40

如何设置Cadence 16.6 Capture CIS Explorer默认Visible属性

最近在建设公司Cadence库过程中,发现在原理图中放置某些元器件时,总会附带一些不需要属性,比如放置电容时,除了容值和额定电压还有Value值,因此对这一问题进行了探索。...在CIS Explorer中可以看到许多属性,下图是一个例子。...上图中,当元件某一属性勾选Visible,那么在原理图中放置该元件时这一属性就会出现在原理图中,上图中默认勾选了所有属性Visible,它设置方法如下: 打开一个原理图,选择Options ->...点击Browse,可以指定.DBC格式Configuration File,此处假设你已经设置好了.DBC,之后点击Setup,出现如下界面。...在Tables中选择表,比如选择Capacitor,在Configuration中有个Visibility属性,勾选某一属性,意味着Capacitor属性默认会出现在原理图中,根据公司要求选择即可。

1.5K20

如何配置EasyCVR告警录像保留天数?

近期我们在平台增加了告警录像保留天数设置,今天来和大家分享一下。在之前版本中,我们增加了告警预案功能。在平台配置中心—告警预案中,支持用户添加预案,可设置快照间隔、告警画面的录像时长。...通过设置报警级别、报警方式、报警类型、事件类型来触发告警预案,从而完成抓取快照以及录像等功能,并能在告警查询中查看告警信息。添加预案后,需要给预案添加关联通道,在这里勾选完,直接关闭即可保存。...详细请看下图:告警触发后,可在告警查询中查看告警信息以及告警录像,可以播放告警通道录像视频、下载录像文件以及分享链接。在使用中发现,录制视频和抓拍图片并不会自动删除,时间长了就会占满整个磁盘。...因此,在EasyCVR v3.2版本上,我们新增了自动删除功能,配置选项在easycvr.ini文件中,用户参照如下步骤进行配置即可。...这样一来,就能实现对告警录像保存天数设置,满足用户使用需求。

22920

Linux文件基本属性设置方法

Linux文件属性有两种设置方法,一种是数字,一种是符号。...变更权限指令chmod语法是这样: chmod [-R] xyz 文件或目录 选项与参数: xyz : 就是刚刚提到数字类型权限属性,为 rwx 属性数值相加。...读写权限可以写成 r, w, x,也就是可以使用下表方式来看: chmod ugoa +(加入)-(除去)=(设定) rwx 文件或目录 如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用...Linux文件属性有两种设置方法,一种是数字,一种是符号。...读写权限可以写成 r, w, x,也就是可以使用下表方式来看: 如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定: # touch

2.6K30
领券