某些字段的Jackson 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被编码为

。开箱即用的杰克逊将集结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应该为您处理自动装箱从intInteger

以上是 某些字段的Jackson JSON自定义序列化 的全部内容, 来源链接: utcz.com/qa/424899.html

回到顶部