Java 从json数组中获取json字段
我有以下json文档。我只想检索所有的名字。给定一个电影名称,我需要返回所有用户名 我正在使用Java,如果你也能在Java方面帮助我,那就太棒了。我该怎么做 您可以访问org.json库 样品Java 从json数组中获取json字段,java,json,mongodb,mongodb-query,Java,Json,Mongodb,Mongodb Query,我有以下json文档。我只想检索所有的名字。给定一个电影名称,我需要返回所有用户名 我正在使用Java,如果你也能在Java方面帮助我,那就太棒了。我该怎么做 您可以访问org.json库 样品 //Json object JSONObject obj = new JSONObject(" .... "); String id = obj.getString("_id"); String movieName = obj.getString("movieName"); //Json array
//Json object
JSONObject obj = new JSONObject(" .... ");
String id = obj.getString("_id");
String movieName = obj.getString("movieName");
//Json array
JSONArray users = obj.getJSONArray("user");
for (int i = 0; i < arr.length(); i++)
{
String name = user.getJSONObject(i).getString("name");
String name = user.getJSONObject(i).getString("date");
}
您可以将函数与查询一起使用,如下所示:
mongo shell:
例如,在Java中,这是通过方法实现的
// Get a new connection to the db assuming that it is running
MongoClient m1 = new MongoClient();
// use test as a database or use your own database
DB db = m1.getDB("test");
// fetch the collection object
DBCollection coll = db.getCollection("movieToUsers");
// call distinct method with the query and store results in variable results
List results = coll.distinct("speed", new BasicDBObject("movieName", "Green Mile"));
// iterate through the results list and print the names
for(int i=0;i<results.size();i++){
System.out.println(results.get(i));
}
如果您使用的是Mongo3.x驱动程序,您可以使用类似的东西
MongoClient mongoClient = new MongoClient();
MongoDatabase db = mongoClient.getDatabase("test");
MongoCollection<Document> movieToUsers = db.getCollection("movieToUsers");
Bson filter = Filters.eq("movieName", "Green Mile");
List<String> names = movieToUsers.distinct("user.name", filter, String.class).into(new ArrayList<>());
您是否尝试了任何有助于我们了解您的困境的方法?同样,在StackOverlow上不鼓励使用图像作为代码,请使用实际代码而不是图像更新您的问题。可能存在重复的
MongoClient mongoClient = new MongoClient();
MongoDatabase db = mongoClient.getDatabase("test");
MongoCollection<Document> movieToUsers = db.getCollection("movieToUsers");
Bson filter = Filters.eq("movieName", "Green Mile");
List<String> names = movieToUsers.distinct("user.name", filter, String.class).into(new ArrayList<>());