我一直在努力寻找一种方法来使用Jackson将该XML反序列化为Java:

<bitstream encoding="base64Binary">ew0KIklucH...bkpBTVMgQUEiDQp9</bitstream>

我已经搜索了很久,但我找不到一种似乎很常见的XML struct 的解决方案:同时具有值和属性的元素. 有谁可以帮我?

以下是我当前的代码:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Bitstream {
    @JacksonXmlProperty(isAttribute = true)
    private String encoding;
    @JacksonXmlProperty(localName = "bitstream")
    private String bitstrm;

    public String getEncoding() {
        return encoding;
    }
    public void setEncoding(String encoding) {
        this.encoding = encoding;
    }
    public String getBitstream() {
        return bitstrm;
    }
    public void setData(String bitstrm) {
        this.bitstrm = bitstrm;
    }

这将设置encoding属性,但bitstrm为空. 我是否需要创建自定义的反序列化程序...或者干脆来一杯"DUH!"当我看到答案的那一刻?

推荐答案

try 在bitstrm字段中使用@JacksonXmlText而不是@JacksonXmlProperty:

@JacksonXmlText
private String bitstrm;

Java相关问答推荐

无法运行Java(已解决)

如何用javac编译Java类,即使对像java.lang.*这样的基本类也没有任何依赖关系?

gitlab ci不会运行我的脚本,因为它需要数据库连接'

AlarmManager没有在正确的时间发送alert

有没有一种方法使保持活动设置专用于java.net.http.HttpClient的一个实例

Jlink选项&-strie-ative-Commands";的作用是什么?

为什么我的ArrayList索引的索引总是返回-1?

通过合并Akka Streams中的多个慢源保持订购

在Java中,如何按一个属性升序,然后按另一个属性降序对对象列表进行排序?

将PNG转换为位图自定义十六进制字符串

如何在我的世界中为互动增加冷却时间?

Java Telnet客户端重复的IAC符号

在Java中使用StorageReference将数据从Firebase存储添加到数组列表

谷歌应用引擎本地服务器赢得';t在eclipse上运行

Java泛型方法重载

这是JavaFX SceneBuilder的错误吗?

在输入端没有可行的替代方案'; Select *';

将Optionals/null安全添加到嵌套的flatMap/流

如何调查进程列表中不可见的活跃 MySQL 事务?

在数组列表中找到对象后,未从数组中删除对象