有没有一种使用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被编码为字符串。开箱即用的 jackson 将
int
编码为一个数字。在这种情况下,我希望将favoriteNumber编码为字符串。 最佳答案
您可以实现自定义序列化器,如下所示:
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应该为您处理从
int
到Integer
的自动装箱。