[英]Parsing json configuration with multiple primary keys
{
"ssn1": {
"name": "person1",
"address": "address1"
"drivingLicense": "dl1"
},
"ssn2": {
"name": "person2",
"address": "address2"
"drivingLicense": "dl2"
}
}
如上所述,我有一个 json 配置数据。
class Citizen {
Map<String, Person> personMap;
}
class Person {
String name;
String address;
String drivingLicense;
}
pojos 就像上面提到的那个。 我可以轻松地将 json 配置反序列化为 java Map<String, Person>
并使用 SSN 进行搜索。
问题:如何反序列化以获取两张地图 - 一张输入 SSN,另一张使用驾驶执照? 我可以使用 SSN->person 地图来创建另一个地图 DrivingLicense->Person。 我可以以一种优雅的方式创建驾驶执照地图吗?
ssnMap.entrySet().stream().collect(Collectors.toMap(
e -> e.getValue().getDrivingLicense(),
e -> e.getValue()));
一次又一次地为护照号码等其他主键?
假设
你不能用任何一种内容不可知的反序列化来做到这一点,它只在结构上运行。 你可以在后处理中做一些微不足道的事情,比如
var byDl = bySsn.values().stream().collect(toMap(Person::drivingLicense, identity()));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.