【发布时间】:2015-11-04 10:24:53
【问题描述】:
我有一个字段的custom JsonSerializer(简化代码):
@JsonSerialize(using=Text1Serializer.class)
@JsonProperty("text1") // I need this inside the custom serializer
@Override
public String getTextOne() {
return "foo";
}
// ...
public static class Text1Serializerextends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
// how to get "text1" here?
provider.defaultSerializeValue(value, jgen);
}
}
由于我需要用类似的逻辑序列化大约 10 个其他字段,这仅取决于字段 name,如果我能在自定义序列化程序中获取属性名称,这将对我很有帮助 -而不是编写十个相同的序列化程序。
我已经看到在serialize() 方法中我可以使用JsonGenerator.getCurrentValue() 获取整个对象(请参阅this answer),但我没有找到获取字段名称的方法。
我使用的是 Jackson 2.6
【问题讨论】: