2017-01-14 3 views
-2

У меня есть следующий документ json. Я хочу получить только все имена. Учитывая имя фильма, мне нужно вернуть все имена пользователей.Получить поле json из массива jsons

Я использую Java, если вы также можете мне помочь в Java, это будет потрясающе. Как я могу это сделать?

enter image description here

+4

Вы попробовали что-нибудь, что поможет нам увидеть, где вы застряли? – Veeram

+1

Также изображения как код действительно обескуражены здесь, на StackOverlow, пожалуйста, обновите свой вопрос с помощью фактического кода, а не изображений. – chridam

+0

Возможный дубликат [Как разобрать JSON в Java] (http://stackoverflow.com/questions/2591098/how-to-parse-json-in-java) –

ответ

0

Вы можете использовать что-то вроде, если вы используете драйвер Монго 3.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<>()); 
0

Вам 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"); 
} 
0

Вы можете использовать distinct() функцию с помощью запроса следующим образом:

Монго оболочки:

var results = db.movieToUsers.distinct("user.name", { "movieName": "Green Mile" }); 
printjson(results); 

В Java это реализуется с помощью метода distinct(), например

// 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)); 
} 
Смежные вопросы