2017-12-10 7 views
-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")); 
} 
+0

「[Javaを使用してJSONフィールドを抽出する]」(https://stackoverflow.com/questions/22074192/extracting-json-fields-using-java)の可能な複製 – tkruse

答えて

0

MongoDBのJSONを返すので、あなたはJavaでJSONフィールドを抽出する方法を探す必要があります(Extracting JSON fields using java

あなたはJSONフィールドに、より便利なアクセスを持っている任意のJavaのJSONライブラリを使用することができます。 JacksonやGsonのように。

関連する問題