【问题标题】:custom field serialization using jacson使用杰克逊的自定义字段序列化
【发布时间】:2013-05-15 05:15:33
【问题描述】:

我想使用杰克逊以自定义方式序列化我班级的几个字段。所以我为此编写了一个自定义序列化程序。但我的问题是我无法在自定义序列化程序中获取字段的名称。我的 POJO 类是

public static class Foo {
public String foo = "a";
@JsonSerialize(using = CustomSerializer.class)
public String bar = "b";
@JsonSerialize(using = CustomSerializer.class)
public String foobar = "c";
}  

我的自定义序列化程序类是

public class CustomSerializer extends JsonSerializer<String>
{
    @Override
    public void serialize(String t, JsonGenerator jg, SerializerProvider sp) throws         IOException, JsonProcessingException
    {
        if(field.name.equals("a"))
            //do this
        else if(filed.name.equals("b")) 
            //do that
    }

 }    

在这里,我想获取正在序列化的字段的名称。 如何在自定义序列化程序中获取字段“a”和“b”的名称? 谢谢

【问题讨论】:

    标签: java jackson


    【解决方案1】:

    我认为,现在这是不可能的。但是您可以为每个属性创建两个单独的序列化程序。我知道,这是一个小解决方法,但它应该可以工作。

    【讨论】:

    • 我是这么想的,但是我必须用这种方式序列化很多字段,所以这样做似乎是不可能的。顺便感谢您的回复
    猜你喜欢
    • 2012-08-16
    • 2023-04-07
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多