如何解决使用 FasterXML 解析带有别名的 yml 文件
我有一个包含多个对象的 yaml 文件和一个使用 yaml v1.2 规范中的锚点/别名 (&/*) 的列表:
key1:
subkey: &myalias
- attr1: valueX
attr2: valueY
attr3: valueZ
- attr1: another_valueX
attr2: another_valueY
attr3: another_valueZ
key2:
subkey: *myalias
我有以下 Java 类:
package com.acme.model;
import lombok.Data;
import java.io.Serializable;
@Data
public class FileObject implements Serializable {
private KeyObject key1;
private KeyObject key2;
public FileObject() {}
}
---
package com.acme.model;
import lombok.Data;
import java.io.Serializable;
@Data
public class KeyObject implements Serializable {
private SubkeyList subkey;
public KeyObject() {}
}
---
package com.acme.model;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
@Data
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,property = "subkeyId")
public class SubkeyList extends ArrayList<SubkeyObject> implements Serializable {
private String subkeyId;
public SubkeyList() {}
}
---
package com.acme.model;
import lombok.Data;
import java.io.Serializable;
@Data
public class SubkeyObject implements Serializable {
private String attr1;
private String attr2;
private String attr3;
public SubkeyObject() {}
}
ObjectReader reader = new ObjectMapper(new YAMLFactory()).readerFor(FileObject.class);
InputStream in = this.getClass().getClassLoader().getResourceAsstream("file.yml");
FileObject fileObject = reader.readValue(in);
但是出现以下异常:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `com.acme.model.SubkeyList<com.acme.model.SubkeyObject>` out of VALUE_STRING token
at [Source: (BufferedInputStream); line: 10,column: 11] (through reference chain: com.acme.model.FileObject["key2"]->com.acme.model.KeyObject["subkey"])
我没有找到将别名和锚点用于列表或地图的文档,仅用于对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。