使用 jackson-dataformat-xml 仅忽略 json 中的字段,而不忽略 xml 中的字段

2023-12-06

Using Jacksonjackson-dataformat-xml模块,我能够序列化POJO二者皆是JSON and XML。我的对象中有一些字段(xml 属性)只能序列化为XML但不是JSON。如果我应用@JsonIgnore注释,该字段被完全忽略,即使使用@JsonXMLProperty.

我怎样才能只忽略字段JSON但不是XML?


你应该使用Mix-in特征。例如,假设您的POJO类看起来像这样:

class Pojo {

    private long id;
    private String xmlOnlyProperty;

    // getters, setters
}

现在,您可以使用以下命令为每个属性定义注释Mix-in接口。为了JSON它看起来如下:

interface PojoJsonMixIn {

    @JsonIgnore
    String getXmlOnlyProperty();
}

For XML它看起来如下:

interface PojoXmlMixIn {

    @JacksonXmlProperty(isAttribute = true)
    String getXmlOnlyProperty();
}

最后举例说明如何使用Mix-in特征:

Pojo pojo = new Pojo();
pojo.setId(12);
pojo.setXmlOnlyProperty("XML attribute");

System.out.println("JSON");
ObjectMapper mapper = new ObjectMapper();
mapper.addMixInAnnotations(Pojo.class, PojoJsonMixIn.class);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(pojo));

System.out.println("XML");
ObjectMapper xmlMapper = new XmlMapper();
xmlMapper.addMixInAnnotations(Pojo.class, PojoXmlMixIn.class);
System.out.println(xmlMapper.writeValueAsString(pojo));

上面的程序打印:

JSON
{
  "id" : 12
}
XML
<Pojo xmlns="" xmlOnlyProperty="XML attribute"><id>12</id></Pojo>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jackson-dataformat-xml 仅忽略 json 中的字段,而不忽略 xml 中的字段 的相关文章

随机推荐

  • 由于 MIME 类型不匹配而阻止资源(X-Content-Type-Options:nosniff)

    我正在使用 JavaScript 和 HTML 开发网页 一切正常 当我从 HTML 页面收到以下错误列表时 这很好 The resource from https raw githubusercontent com dataarts da
  • 运行 endpointscfg.py get_swagger_spec 时出错

    我正在尝试按照本指南使用 Google Cloud Endpoints 构建一个项目 App Engine 上的云端点框架快速入门 我陷入了生成 OpenAPI 配置文件的步骤 需要运行以下命令 尝试一 lib endpoints endp
  • 为什么armeabi-v7a与另一个模块的armeabi冲突?

    我的项目中有 2 个模块 模块 1 libs armeabi 模块 2 libs armeabi libs armeabi v7a 为了成功运行该应用程序 我必须删除armeabi v7a完全文件夹 否则 so库位于Module 1 arm
  • MySQL - 时间戳之间的平均差异,不包括周末和非工作时间

    我正在寻找能够平均时间戳之间差异的能力 排除周末和排除非工作时间 仅在 08 00 00 17 00 00 之间 我试图仅使用查询来实现此功能 但如果无法使用 MySQL 则可以回退到 PHP 函数 下面是我当前用来获取平均时间戳差异的函数
  • Delphi 中的 Jabber 有完整的库吗?

    我正在寻找 Delphi 的 Jabber 库 我可以看到一些基于 COM 的 jabber 组件 但我正在寻找一个真正的 VCL 库 有人认识一个吗 您可以将 Exodus 的基础代码编译为 VCL 该代码称为 JOPL 可以在以下位置找
  • 为捕获过滤器添加音频功能

    我正在尝试向捕获源过滤器添加音频功能 以便制作带有音频的虚拟摄像机 开始于TMH s and rdp的代码我用另一个引脚扩展了它 称为 音频 CUnknown WINAPI CVCam CreateInstance LPUNKNOWN lp
  • Python:“del my_list”与“del[my_list]”

    我用 Python 创建了一个列表 gt gt gt my list 1 2 3 4 现在 如果我想删除列表 我想使用del类似运算符 gt gt gt del my list 这工作得很好 并且可能是使用它的一般方法 但在某个地方我偶然发
  • (Qt) 从按钮的 QButtonGroup 创建信号?

    我对这整件事是如何运作的感到非常困惑 我有一些按钮 我将其放入这样的组中 MainWindow MainWindow QWidget parent QMainWindow parent ui new Ui MainWindow ui gt
  • 从 firebase null 对象引用 firebase 数据库获取所有表值[重复]

    这个问题在这里已经有答案了 public class ShowBPGraphActivity extends AppCompatActivity public GraphView graphView public LineGraphSeri
  • Spring Data JPA - 如何在检索后设置瞬态字段

    使用以下方法获取实体后JpaRepositorySpring Data JPA 的方法 例如findOne findBy 等等 我想知道自动执行一些自定义代码 例如初始化一些瞬态字段 的最佳方法是什么 换句话说 假设我有一个 User 实体
  • 如何将更改从中间件传递到socket.io?

    我使用 node js 和 socket io 向用户推送实时通知 但是 目前我只是发送回在我的 socket io 代码中完成的查询结果并将其发送回客户端 但我需要让套接字知道发生的更改 并更新更改或重新查询数据库检查新号码并将其发送给客
  • PHP 将输出刷新到浏览器

    我从事 PHP 项目并使用flush 我做了很多搜索 发现 PHP 将脚本的长输出分块发送到浏览器 并且在脚本终止时不会发送所有大量数据 我想知道这些数据的大小 我的意思是 PHP 必须输出多少字节才能将它们发送到浏览器 不仅仅是 PHP
  • 如何从不寻常的 JSON 存储创建 Ext.data.Store?

    我有这个 JSON 存储 但它的编码不正确 它的正确语法是什么 Ext define MA store Language extend Ext data Store fields name id name name data aa Afar
  • pthread_cond_wait:随机分段错误

    Update 3 最近 我注意到我的代码随机导致分段故障错误 但我认为到目前为止我的代码非常简单 我无法弄清楚该错误来自哪里 由于它是随机发生的 我假设存在某种竞争条件 我认为这就是可能相关的所有代码 如果您需要更多 请告诉我 namesp
  • 检查在线状态,例如通过 ping

    我正在使用 VB NET 为 Windows 10 IoT 开发通用 Windows 应用程序 我正在检查两件事 首先是是否有任何网络 我在用 Imports System Net NetworkInformation NetworkInt
  • 如何在不使用其父级的情况下设置 SimpleXmlElement 的文本值?

    我想设置 xpath 找到的某个节点的文本
  • Angular.js $resource 结果

    我发现 Angular resource 的行为非常奇怪 请检查以下代码行 class Service constructor resource gt service resource record id Service list cb g
  • malloc如何理解对齐?

    以下摘自here pw widget malloc sizeof widget 分配原始存储 事实上 malloc 调用分配存储空间 那足够大了并且适当对齐以固定物体类型的 小部件 另见快速实现他从赫伯 萨特那里说 结盟 任何内存对齐 任何
  • 忽略返回值语法?

    在 Matlab 中 tilda 符号可用于忽略返回多个参数的函数中的某个参数 但是 当我在 Octave 中尝试相同的代码时 出现语法错误 我有两个问题 为什么 Octave 不支持这个 即错误 未来的增强 设计决策等 Octave 中的
  • 使用 jackson-dataformat-xml 仅忽略 json 中的字段,而不忽略 xml 中的字段

    Using Jackson与jackson dataformat xml模块 我能够序列化POJO二者皆是JSON and XML 我的对象中有一些字段 xml 属性 只能序列化为XML但不是JSON 如果我应用 JsonIgnore注释