【发布时间】:2021-12-27 12:50:40
【问题描述】:
假设我有以下 json
[
{
"00080005":{
"vr":"CS",
"Value":[
"ISO_IR 100"
]
},
"00080054":{
"vr":"AE",
"Value":[
"DCM4CHEE"
]
}
}
]
如何在java中创建一个自定义类来映射它? 我试过这个类的形状
public class custom1 {
private Map<String, cusomt2> id;
}
而cusomt2的形状是
public class cusomt2 {
private Object vr;
private Object[] Value;
}
并使用 Jackson 映射器进行映射
ObjectMapper mapper = new ObjectMapper();
List<custom1> test = Arrays.asList(mapper.readValue(responseStream, custom1[].class));
正如预期的那样,给我一个错误:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "00080005"
我想要“0008005”作为字段值而不是字段键,这些值是根据API动态变化的,那么如何映射这个json,除了最后一个选项op custom deserialize还有什么直接的方法吗?
【问题讨论】:
-
您认为
mapper.readValue(responseStream, custom2[].class)会做什么? (特别是custom2[]。)为什么将结果(包装在列表中)分配给List<custom1>? -
我编辑了,应该是custom1[]而不是custom2[],但这不是问题
标签: java json serialization jackson objectmapper