私はその後、私は私のリストデシリアライザクラスのようにあるこのリストオブジェクトの代わりに単一のオブジェクトとしてリストを逆シリアル化する方法はありますか?
---
name: 'abc'
addresses:
offices:
- street: 123 main st
city: san francisco
state: ca
- street: 234 post st
city: san francisco
state: ca
のようなYAMLファイルを持って、次のアドレスと、その後のAddressListクラス
public class Address {
private String street;
private String city;
private String state;
// ...
}
public class AddressList {
private List<Address> addresses;
// ...
}
とPersonクラス
public class Person {
private String name;
@JsonDeserialize(contentUsing = ListDeserializer.class)
private Map<String, AddressList> addresses;
// ..
}
を持っています以下:
public class ListDeserializer extends JsonDeserializer<AddressList> {
@Override
public AddressList deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return jsonParser.readValueAs(new TypeReference<Map<String, List<Address>>>() {
});
}
} 次のように私の解析コードは次のとおりです。
ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
return objectMapper.readValue(inputYamlFile, Person.class);
私はアドレスのリストを読み込むとき:それは
{offices=null}
として出力する誰もがこれを解決するに役立つことはできますか?