当前位置: 首页 > 知识库问答 >
问题:

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

长孙景天
2023-03-14

共有1个答案

松和安
2023-03-14

你应该使用混合功能。例如,假设POJO类如下所示:

class Pojo {

    private long id;
    private String xmlOnlyProperty;

    // getters, setters
}

现在,您可以使用mix-in接口为每个属性定义注释。对于JSON,如下所示:

interface PojoJsonMixIn {

    @JsonIgnore
    String getXmlOnlyProperty();
}

对于XML,如下所示:

interface PojoXmlMixIn {

    @JacksonXmlProperty(isAttribute = true)
    String getXmlOnlyProperty();
}
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>
 类似资料:
  • 我想知道是否可以使用此方法忽略字段,因为我有一个要忽略的字段列表,在同一个类中,那么我该如何做呢? 我正在使用 谢谢

  • 问题内容: 我正在使用Jackson JSON库将一些JSON对象转换为android应用程序上的POJO类。问题是,JSON对象可能会更改,并且在发布应用程序时会添加新字段,但是即使添加简单的String字段(即使可以安全地忽略),当前它也会中断。 有什么办法告诉杰克逊忽略新添加的字段?(例如,在POJO对象上不存在)?全局忽略将是巨大的。 问题答案: Jackson提供了可以在类级别使用的注释

  • 知道我做错了什么吗?如果重要的话,我将使用Jackson-core 2.1.1。

  • 问题内容: 当我发送此请求时: 我的休息服务: 我期望得到一个例外,因为: 我的域模型中没有invalidField。 日期格式无效。 但是实际上我得到的测试对象具有空值。我的dmain模型是: 我认为这不是有效的行为。我该如何解决? 感谢帮助。 解: 正如Blaise Doughan所说,需要扩展MOXy的MOXyJsonProvider并重写preReadFrom方法以设置自定义javax.x

  • 我使用jackson 2. x进行序列化和反序列化。我注册了对象映射器到后燃烧器模块,并配置对象映射器忽略未知属性 但是当它试图序列化一个对象时,它失败了,因为属性错误找到了未知的字段 java对象还带有@JsonIgnoreProperties注释(ignoreUnknown=true) 有人能帮我理解可能出了什么问题吗 下面是Util类 枚举类编号 甲级 我反序列化的代码如下所示 我试图反序列

  • 我希望在可以检索到它时忽略一个字段: 任何帮助都将不胜感激!