Java 使用jackson限制字符串的写入大小
我有一个带有字段“description”的对象列表。这个字段可能很大(+3000个字符),但我在预览中使用它(我只显示100个firsts字符) jackson有没有办法限制写入时字符串的大小?我只想让杰克逊把它剪成100个字符。(此处不需要bean验证) 例如,如果我有这样一个对象:Java 使用jackson限制字符串的写入大小,java,json,jackson,fasterxml,Java,Json,Jackson,Fasterxml,我有一个带有字段“description”的对象列表。这个字段可能很大(+3000个字符),但我在预览中使用它(我只显示100个firsts字符) jackson有没有办法限制写入时字符串的大小?我只想让杰克逊把它剪成100个字符。(此处不需要bean验证) 例如,如果我有这样一个对象: { "description" : "bla bla bla bla... + 3000 char" } 理想情况下,我希望它像这样裁剪: { "description" : bla bla
{
"description" : "bla bla bla bla... + 3000 char"
}
理想情况下,我希望它像这样裁剪:
{
"description" : bla bla [max 100 chars] bla..."
}
谢谢。您可以编写一个自定义序列化程序,如果文本超过如下所示的限制,它可以对文本进行裁剪
public class DescriptionSerializer extends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
if(value.length() > 100){
value = value.substring(0, 100) + "...";
}
gen.writeString(value);
}
}
你好,谢谢你的回答。如果我想在其他需要完整描述的情况下使用我的DTO,该怎么办?您可以使用本文中解释的是,这将完成工作:-)谢谢!
public class Bean{
@JsonSerialize(using=DescriptionSerializer.class)
private String description
}