gpt4 book ai didi

java - 使 jackson 在类的序列化尝试上失败

转载 作者:行者123 更新时间:2023-12-02 08:59:32 27 4
gpt4 key购买 nike

是否有任何简单的方法可以使 Jackson 无法序列化特定类?

基本上,我想确保包含一些敏感数据的类不会泄漏到任何地方,并且由于我们同时以文本和 json 进行记录,我担心它最终可能会作为某个更大对象的一部分记录为 json。 (当然我可以让它序列化为 ***** 字符串,但我认为错误更清楚地表明它不应该在那里使用)。

我现在唯一的想法是自定义 Serizalizer,它只会抛出异常,但我想知道是否有一些更简单的方法来告诉 Jackson 远离该类。

最佳答案

public class YourBlackListingSerializer extends StdSerializer<YourPojo> {

public YourBlackListingSerializer() {
this(null);
}

public YourBlackListingSerializer(Class<YourPojo> t) {
super(t);
}

@Override
public void serialize(
Item value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
throw new CustomException("This class can't be serialized");
}
}

这应该有效。

然后注册序列化器

ObjectMapper mapper = new ObjectMapper();

SimpleModule module = new SimpleModule();
module.addSerializer(YourPojo.class, newYourBlackListingSerializer());
mapper.registerModule(module);

但是,如果您只想忽略字段,那么

@JsonIgnore
private String password;

@JsonIgnore
public String getPassword() {
return password;
}

@JsonProperty
public void setPassword(final String password) {
this.password = password;
}

关于java - 使 jackson 在类的序列化尝试上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60265776/

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