-1
num_likes
の値をmongodbクエリから取得しようとしています。Java:Jsonドキュメントから単一の値を読み取る
クエリのコード:右端にnum_likes
を示しprintln
の
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"));
}
出力:ジャワに精通し、成功せずc.get("comments").get(0)
を試しているわけではありません
[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 protected], num_likes=1}}]
。
更新:
は値を一つずつ構造化代入して値を取得することができました。直接アクセスするより良い方法はありますか?
for(Document c: comments) {
System.out.println(c.get("comments"));
ArrayList c2 = (ArrayList<Object>) c.get("comments");
Document d = (Document) c2.get(0);
System.out.println(d.get("num_likes"));
}
「[Javaを使用してJSONフィールドを抽出する]」(https://stackoverflow.com/questions/22074192/extracting-json-fields-using-java)の可能な複製 – tkruse