有没有一种使用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编码为字符串。
int
您可以实现自定义序列化器,如下所示:
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。
Integer