如何使用 Jackson @JsonFormat 注释在序列化时格式化字符串?
How to use Jackson @JsonFormat annotation to format a string on serialisation?
我是一个 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
是错误的方法吗?
您可以创建 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>");
}
我是一个 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
是错误的方法吗?
您可以创建 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>");
}