我正在尝试将JSON文件反序列化到我的Java类中。我已经尝试了所有可能的解决方案,我可以找到与JSON注解,如@JsonSubTypes
,@JsonTypeInfo
和与CLASS,NAME和所有我可以找到的。但是,没有一个解决方案的工作。
请参阅下面的原始JSON文件和类之前的变化。
JSON文件:
{
"data": [
{
"error_msg": "error msg 1",
"error_code": "error code 1",
"type": "error"
},
{
"data": [
{
"error_msg": "error msg 2",
"error_code": "error code 2",
"type": "error"
}
],
"name": "group1",
"type": "group"
}
],
"name": "exceptions_db",
"version": "1"
}
Java类:
一个一个一个一个一个x一个一个二个一个x一个一个三个一个x一个一个x一个四个一个
在data属性下,模型和JSON中的每一项都可以是一个组或错误对象。
更新:
我尝试将json注解添加到ExceptionItem,但仍然不起作用
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Error.class, name = "error"),
@JsonSubTypes.Type(value = Group.class, name = "group"),
})
public abstract class ExceptionItem {
}
我收到以下错误:
Can not construct instance of com.altair.infrastructures.propertiesFile.jsonResourceLoader.exceptions.ExceptionItem, problem: abstract types can only be instantiated with additional type information
at [Source: C:\QA\TestCaseGenerator\systemFiles\exceptions\Exceptions_DB.json; line: 3, column: 5] (through reference chain: com.altair.infrastructures.propertiesFile.jsonResourceLoader.exceptions.ExceptionsModel["data"])
1条答案
按热度按时间tf7tbtn21#
我的问题是我的ObjectMapper来自Jackson包,而我的JSON注解来自fasterxml