java - 如何使用 Jackson @JsonFormat 注解格式化序列化字符串?
问题描述
我是使用 Jackson 将我的对象序列化为 XML 的 Java 新手。我需要通过将它们包装在 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>");
}
推荐阅读
- arrays - 有没有办法将多个公式合并为一个
- c++ - 解压缩图像时多像素操作的高效设计
- swift - 在 Core Graphic 中绘制的线条之间创建一个居中和旋转的 UILabel
- java - 无法解析导入 org.apache.axis2.AxisFault。什么依赖项安装了必要的 AxisFault?
- python - 以列表为值的字典到以列表对象为值的多级索引数据框
- python - Selenium / Python:找到正确位置后从长列表中选择一个链接
- python - 使用python检查字符串中的任何单词是否出现在列表中
- vba - 我在 vba 中使用 chromedriver 时遇到一些问题,不再创建会话
- python - 如何使用 String.Replace String 在 Robot Framework 中使用 Regexp 在每 2 个字符后添加冒号
- javascript - React Native:如何在不更改所有项目状态的情况下更新 Flatlist 中的单个项目