2017-01-07 2 views
2

Я работаю с андроид-студией, и я хочу получить данные из базы данных mongodb. Поэтому я создал соединение, и я могу получить данные в JSON успешно. Но когда я хочу повторить его, это не сработает.Хотите получить данные от JSONObject

ArrayList<DatabaseSchema> user = new ArrayList<DatabaseSchema>(); 

String mongoarray = "{ db_list: " + list + "}"; 
Object o = com.mongodb.util.JSON.parse(mongoarray); 
DBObject dbObj = (DBObject) o; 
BasicDBList userList = (BasicDBList) dbObj.get("db_list"); 

for (Object obj : userList) { 
    DBObject userObj = (DBObject) obj; 
    DatabaseSchema temp = new DatabaseSchema(); 
    temp.setUsername(userObj.get("username").toString()); 
    user.add(temp); 
} 

И в конце этого метода я хочу вернуть пользователя. Но когда я хочу получить имя пользователя этого пользователя, я ничего не получаю и ошибки нет.

EDIT:

public class DatabaseSchema { 
    public String username; 

    public void setUsername(String username) { 
    this.username = username; 
    } 

    public String getUsername() { 
    return username; 
    } 
} 

и я получить этот вход:

[{ "_id": { "$ подъязычная": "586 .."}, "документ": { "username": "gmz"}}]

+0

Вы уверены, что DabaseSchema - правильный тип ..? Кроме того, использование класса Object в большинстве случаев не соответствует наилучшей практике. – Gewure

+2

@Gewure да, это правильный вариант. У вас есть пример, как я могу реализовать его без использования класса объекта? – gmz

+0

нет, у меня нет. я просто понял, что кастинг, который кажется очень неестественным. Возможно, хороший парень mkyong может помочь вам с этим: http://www.mkyong.com/mongodb/spring-data-mongodb-query-document/ – Gewure

ответ

0

Вы можете обновить цикл for, как показано ниже.

for (Object obj : userList) { 
     DBObject userObj = (DBObject) obj; 
     DatabaseSchema temp = new DatabaseSchema(); 
     DBObject document = (DBObject) userObj.get("document"); 
     temp.setUsername((String) document.get("username")); 
     user.add(temp); 
} 
Смежные вопросы