有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Jackson@JsonFormat注释在序列化时格式化字符串?

我是一名Java新手,使用Jackson将我的对象序列化为XML。我需要通过将字符串值包装在HTML段落标记中来格式化它们。我尝试过使用@JsonFormat注释,但没有成功。我的伪代码如下:

package mypackage;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonFormat.Shape;

public class MyClass {
    // I want to find a pattern that will serialise  text  as <p>{string value of text}</p>
    @JsonFormat(shape = Shape.STRING, pattern = "<p>{text}</p>") // can I do something like this?
    String text;

    public MyClass(MyOtherClass otherClass) {
        this.text = otherClass.text;
    }
}

我找不到任何关于如何格式化pattern以实现我想要的内容的文档。在这里使用@JsonFormat是错误的方法吗


共 (1) 个答案

  1. # 1 楼答案

    您可以创建json getter和setter,然后使用自定义逻辑处理字段:

    private String text;
    
        public String getText() {
            return text;
        }
    
        public void setText(String text) {
            this.text = text;
        }
    
        @JsonGetter("text")
        public String getJsonText() {
            return text == null ? null : "<p>" + text + "</p>";
        }
    
        @JsonSetter("text")
        public void setJsonText(String text) {
            this.text = text == null ? null : StringUtils.substringBetween(text, "<p>", "</p>");
        }