gpt4 book ai didi

java - Jackson 动态属性名称

转载 作者:IT老高 更新时间:2023-10-28 20:43:51 24 4
gpt4 key购买 nike

我想序列化一个对象,以便根据字段的类型对其中一个字段进行不同的命名。例如:

public class Response {
private Status status;
private String error;
private Object data;
[ getters, setters ]
}

在这里,我希望将字段 data 序列化为 data.getClass.getName() 之类的东西,而不是总是有一个名为 data< 的字段 根据情况包含不同的类型。

我如何使用 Jackson 实现这样的技巧?

最佳答案

我有一个使用 @JsonAnyGetter 注释的更简单的解决方案,它就像一个魅力。

import java.util.Collections;
import java.util.Map;

public class Response {
private Status status;
private String error;

@JsonIgnore
private Object data;

[getters, setters]

@JsonAnyGetter
public Map<String, Object> any() {
//add the custom name here
//use full HashMap if you need more than one property
return Collections.singletonMap(data.getClass().getName(), data);
}
}

不需要包装器,不需要自定义序列化器。

关于java - Jackson 动态属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com