现在我收藏了这样的文件:
{
"_id": ObjectId("585a8ccc85a4ab1b160b39dc"),
"name": "GuildName",
"slots": 100,
"members": [{
"membername": "playername1",
"rank": 3
}, {
"membername": "playername1",
"rank": 5
}],
"purchases": [],
}
我需要从"成员"中获取成员列表。把它放在HashMap(String,Integer)中。 (作为关键 - "会员名称"的价值,作为整数 - "排名")。
答案 0 :(得分:0)
假设doc
是包含您的文档的Document
对象:
HashMap<String, Integer> memberMap = new HashMap<>();
List<Document> members = (List<Document>)doc.get("members");
for (Document member : members) {
memberMap.put(
(String)member.get("membername"),
(Integer)member.get("rank"));
}
答案 1 :(得分:0)
有很多方法可以做到这一点。根据你的方法。
如果您使用BasicBSONObject
,那么
您可以在
toMap()
上调用BasicBSONObject
函数返回LinkedHashMap<String,Object>
如果您正在使用文档对象,那么我不确定您为什么要将其显式转换为另一个hashmap,因为org.bson.Document
默认为implements Map<String,Object>
所以您可以直接对文档对象执行所有操作你在一个hashmap上做。
如果您仍想将其复制到另一个散列图,则可以使用Yoshiya的代码。