4
私は内部マップを持つPOJOを持っています。これをJSONからHashMapに逆シリアル化したいが、Jacksonは内部マップをJSONからLinkedHashMapにデシリアライズする。マップのタイプを "Map"から "HashMap"に変更することでHashMapを使用することができますが、マップの特定の実装にデシリアライズするようジャクソンに指示する方法があるかどうかを知りたいですか?ここでJackson JSONオブジェクトマッパーは、HashMapの代わりにLinkedHashMapにデシリアライズします
は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
}]
}
}
および変換クラス:
私はObjectMapperを使用していますどのように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;
}
}
:
try(Reader reader = new InputStreamReader(TransformTester.class.getResourceAsStream("transforms.json"), "UTF-8")) {
ObjectMapper objMapper = new ObjectMapper();
Transformer tr = objMapper.readValue(reader, Transformer.class);
}
なぜ気になりますか? –
Jacksonは 'LinkedHashMap'を使ってJSONからのフィールドの順番を守っています。それは何が間違っていますか? – Andreas
@ Andreas LinkedHashMapで余分なオーバーヘッドはありませんか?私は命令を気にしない。 – Seephor