我有一个包含内部 map 的 POJO。我想要将其从 JSON 反序列化为 HashMap,但是 Jackson 将 JSON 中的内部 map 反序列化为 LinkedHashMap。我可以通过将 Map 的类型从“Map”更改为“HashMap”来强制使用 HashMap,但我想知道是否有一种方法告诉 Jackson 反序列化为特定的 Map 实现?
以下是 JSON:
以下是 JSON:
{
"transforms": {
"variable_name1": [{
"min": 100,
"max": 200,
"value": 0.6
}],
"variable_name2": [{
"min": 100,
"max": 200,
"value": 0.6
}],
"variable_name3": [{
"min": 100,
"max": 200,
"value": 0.6
}]
}
}
以及 Transforms 类:
public class Transformer {
Map<String, List<Transform>> transforms;
public Transformer() {
transforms = new HashMap<String, List<Transform>>();
}
public void setTransforms(Map<String, List<Transform>> transforms) {
this.transforms = transforms;
}
}
我是如何使用ObjectMapper的:
try(Reader reader = new InputStreamReader(TransformTester.class.getResourceAsStream("transforms.json"), "UTF-8")) {
ObjectMapper objMapper = new ObjectMapper();
Transformer tr = objMapper.readValue(reader, Transformer.class);
}
LinkedHashMap
来保持JSON字段的顺序。这样做有什么问题吗? - Andreas