gpt4 book ai didi

java - 如何使用 Jackson 序列化注释

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:17 25 4
gpt4 key购买 nike

我有一个简单的注释类:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface WebService { // with methods}

还有一个pojo

class Pojo {
Webservice webservice;
}

每当我尝试序列化 Pojo 时,除了 Webservice 字段之外的所有字段都会被序列化。

我对反序列化不感兴趣,只对序列化感兴趣。

这是 jackson 的限制吗?

最佳答案

问得好。如果您在注释类型方法上放置 @JsonProperty 注释,则序列化工作正常。这是一个例子:

@JacksonAnnotationSerialization.MyAnnotation(a = "abc", b = 123)
public class JacksonAnnotationSerialization {

@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation {
@JsonProperty
String a();
@JsonProperty
int b();
}

static class Thing {
public final String field;
public final MyAnnotation myAnnotation;

Thing(final String field, final MyAnnotation myAnnotation) {
this.field = field;
this.myAnnotation = myAnnotation;
}
}

public static void main(String[] args) throws JsonProcessingException {
final ObjectMapper objectMapper = new ObjectMapper();
final MyAnnotation annotation
= JacksonAnnotationSerialization.class.getAnnotation(MyAnnotation.class);
final Thing thing = new Thing("value", annotation);
System.out.println(objectMapper.writeValueAsString(thing));
}
}

输出:

{"field":"value","myAnnotation":{"a":"abc","b":123}}

关于java - 如何使用 Jackson 序列化注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35898773/

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