jackson 如何在Kafka中将命名数组反序列化为对象

atmip9wb  于 2022-11-08  发布在  Kafka
关注(0)|答案(2)|浏览(164)

下面是我收到Kafka留言的例子:

{"target":[{"timestamp": "2022-06-20T12:31:46+03:00", "result":"fail", "message":"Client not found."}, {"timestamp": "2022-06-25T12:31:46+03:00", "result":"success"}], "xxi":[{"timestamp": "2022-06-25T12:31:46+03:00", "result":"success"}]}

下面是用于对象从消息反序列化的类

public class CommonEventResult {
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    private LocalDateTime timestamp;
    private String result;
    private String message;
}

主要的问题是我不知道一个系统的名字是什么-xxitarget,等等。但是我想在一些CommonEventResult[]数组或类似的东西中反序列化消息。我该怎么做呢?

mftmpeh8

mftmpeh81#

您可以使用一些泛型实现来对响应类进行建模,例如

@JsonFormat(shape = JsonFormat.Shape.ARRAY)

public class DataResponse {

    public String dataResult;

    public String getDataResult() {
        return dataResult;
    }
}

class GenericResponse implements Response<List<**DataResponse**>> {

    @JsonIgnore
    public List<DataResponse> data;

    @Override
    public List<DataResponse> getData() {
        return data;
    }
px9o7tmv

px9o7tmv2#

尝试

Map<String,List<CommonEventResult>>

相关问题