Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从json数组中获取json字段_Java_Json_Mongodb_Mongodb Query - Fatal编程技术网

Java 从json数组中获取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文档。我只想检索所有的名字。给定一个电影名称,我需要返回所有用户名

我正在使用Java,如果你也能在Java方面帮助我,那就太棒了。我该怎么做

您可以访问org.json库

样品

//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<>());