Java:从Json Document读取单个值

时间:2017-12-10 18:01:19

标签: java mongodb

我正在尝试从mongodb查询中获取num_likes的值。

查询的代码:

FindIterable<Document> comments = postsCollection.find(eq("permalink", permalink))
.projection(fields(exclude(Arrays.asList("body","date", "author", "tags", "title")),slice("comments", ordinal, 1)));

for(Document c: comments) {
    System.out.println(c.get("comments"));
}

最后显示println的{​​{1}}的输出:

num_likes

不熟悉Java并且尝试[Document{{author=Tonia Surace, body=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum, email=DcwPJgyw@mCBzxAfy.com, num_likes=1}}] 但没有成功。

更新

能够通过逐个解构值来获得价值。有没有更好的方法直接访问它?

c.get("comments").get(0)

1 个答案:

答案 0 :(得分:0)

MongoDB返回json,因此您应该查找如何在Java中提取Json字段(Extracting JSON fields using java

您可以使用任何Java json库来更方便地访问json字段。像杰克逊或格森一样。