小编典典

某些字段的Jackson JSON自定义序列化

json

有没有一种使用Jackson JSON Processor进行自定义字段级序列化的方法?例如,我想上课

public class Person {
    public String name;
    public int age;
    public int favoriteNumber;
}

序列化为以下JSON:

{ "name": "Joe", "age": 25, "favoriteNumber": "123" }

请注意,age = 25被编码为 数字, 而favoriteNumber = 123被编码为 string
。开箱即用的杰克逊将集结int到一个号码。在这种情况下,我希望将favoriteNumber编码为字符串。


阅读 665

收藏
2020-07-27

共1个答案

小编典典

您可以实现自定义序列化器,如下所示:

public class Person {
    public String name;
    public int age;
    @JsonSerialize(using = IntToStringSerializer.class, as=String.class)
    public int favoriteNumber:
}


public class IntToStringSerializer extends JsonSerializer<Integer> {

    @Override
    public void serialize(Integer tmpInt, 
                          JsonGenerator jsonGenerator, 
                          SerializerProvider serializerProvider) 
                          throws IOException, JsonProcessingException {
        jsonGenerator.writeObject(tmpInt.toString());
    }
}

Java应该为您处理自动装箱从intInteger

2020-07-27