【问题标题】:Jackson JSON XML - different names when serializing to XMLJackson JSON XML - 序列化为 XML 时的不同名称
【发布时间】:2014-11-17 14:10:10
【问题描述】:

当我的元素被序列化为 XML(例如“fooXml”)和 JSON 的不同名称(例如“fooJson”)时,我希望它具有不同的名称。有可能吗?

我正在使用 XML 注释,例如:

@XmlElements({
    @XmlElement(type = Foo.class, name = "fooXml"),
    })
    private SortedSet<Foo> fooSet;

我已经尝试过@JsonProperty,但没有任何运气。

我也尝试将其导出到 getter 方法,例如:

@XmlElement(type = Foo.class, name = "fooXml")
@JsonProperty(value = "fooJson")
public List<Foo> getFooList() {
    return new ArrayList<>(fooSet);
}

但它总是忽略 JSON 注释并序列化为 XML 形式(fooXml 名称)。

我该怎么做?

编辑:我正在使用 Jersey-json。

【问题讨论】:

  • 它是序列化为 XML 而不是序列化为 json 还是只是序列化为 json 并使用 XML 名称?
  • @Feroc JSON 使用 XML 名称。

标签: java json jersey jackson jax-rs


【解决方案1】:

好的,我也需要同样的功能,并找到了适用于此的解决方案:

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

@JsonProperty("MyJsonName")
@JacksonXmlProperty(localName = "MyXmlName")
private MyProperty myProperty;

对我有用,myProperty 将位于 Json 中的“MyJsonName”字段和 XML 中的“MyXmlName”中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 2020-11-27
    • 2019-10-21
    • 2020-01-14
    • 2021-12-10
    • 2015-06-13
    • 2017-11-29
    • 2017-01-11
    相关资源
    最近更新 更多