地图字符串使用杰克逊继承对象

FearX:

我有QueueContent类,它已经是两个人的超类。

我得到一个字符串JSON格式包含我需要提取信息。超类是:

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class QueueContent {

    private String empresa;
    private String empresa_cor;
    private String empresa_contato;
    private String empresa_url;
    private String empresa_telefone;
    private String empresa_idioma;

    public QueueContent(String empresa, String empresa_cor, String empresa_contato, String empresa_url, String empresa_telefone, String empresa_idioma) {
        this.empresa = empresa;
        this.empresa_cor = empresa_cor;
        this.empresa_contato = empresa_contato;
        this.empresa_url = empresa_url;
        this.empresa_telefone = empresa_telefone;
        this.empresa_idioma = empresa_idioma;
    }

    public QueueContent() {
    }
}

我使用的是龙目生成getter / setter方法)

这是子类:

@Data
public class EmailCameraOffline extends  QueueContent {
    private Timestamp camera_last_online;
    private String camera_nome;
    private String empresa_url_plataforma;

    public EmailCameraOffline(String empresa, String empresa_cor, String empresa_contato, String empresa_url, String empresa_telefone, String empresa_idioma, Timestamp camera_last_online, String camera_nome, String empresa_url_plataforma) {
        super(empresa, empresa_cor, empresa_contato, empresa_url, empresa_telefone, empresa_idioma);
        this.camera_last_online = camera_last_online;
        this.camera_nome = camera_nome;
        this.empresa_url_plataforma = empresa_url_plataforma;
    }

    public EmailCameraOffline() {
    }
}

所以我做:

 EmailCameraOffline infosEmail = new ObjectMapper().readValue(content, EmailCameraOffline.class);
                System.out.println(infosEmail);

而输出是:

 EmailCameraOffline (camera_last_online = 2020-03-12 03: 01: 45.0, camera_nome = Pier Cam 1, empresa_url_platform = null)

如何让我的EmailCameraOffline对象有超属性初始化?

Hrádeček:

一切都应该被加载和初始化就好了,所以美其名曰:

System.out.println(infosEmail.getEmpresa());

应该给预期值。

问题

问题是,在默认的实现toString()方法(通过完成@DataAT)EmailCameraOffline类,其中不包括继承的字段。

为了解决这个问题,你可以“覆盖” @DatatoString()执行情况,包括继承的字段,以及使用龙目岛为:

@Data
@ToString(callSuper = true)
public class EmailCameraOffline extends QueueContent {
...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

杰克逊将字符串转换为对象

反序列化使用杰克逊的字符串或对象

转换JSON记录到LinkedHashMap的<字符串,字符串>使用杰克逊API

杰克逊对象映射器未从Java对象创建正确的Json字符串

杰克逊从json字符串转换为Java对象导致默认对象

使用杰克逊将Java对象转换为json字符串时重复的json属性

杰克逊转换java对象元属性作为任选在JSON字符串

映射一个JSON字符串与杰克逊对象将抛出MismatchedInputException

杰克逊:通过writeValueAsString指向字符串的对象:NPE

杰克逊解析字符串字段作为JSON

杰克逊读值作为字符串

杰克逊JsonNode字符串与排序键

杰克逊ObjectCodec字符串json

如何通过杰克逊进行字符串验证?

杰克逊贴图对象按地图

与杰克逊编组地图对象

杰克逊继承

如何在Java中使用杰克逊将输入字符串转换为JSON字符串或JSON对象

自定义日期字符串使用杰克逊JsonFormat模式

JSON-使用杰克逊库解析无效的终止字符串

在杰克逊中将一个字段从字符串更改为json对象

使用杰克逊创建json对象

如何使用杰克逊将布尔值以字符串形式序列化为JSON到JSON

如何忽略@JsonProperty而杰克逊转换对象地图

对象地图的杰克逊序列化

如何忽略地图相关的括号,而使用杰克逊JSON转换为Java对象

杰克逊,将字符串反序列化为日期

杰克逊不能转换为空字符串值,以枚举

如何写入原始字符串与杰克逊2