Мой ресурс задан следующим образом. Я пытаюсь вернуть все документы в таблице mongo в формате json.Служба RESTful не может вернуть правильный формат JSON
@Path("/myresource")
@GET
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<DBObject> getMongoObject() throws Exception {
MongoClient mongoClient = new MongoClient("localhost" , 27017);
DB db = mongoClient.getDB("zapshop");
DBCollection collection = db.getCollection("admin");
DBCursor cursor = collection.find();
DBObject object = cursor.next();
ArrayList<DBObject> token = new ArrayList<DBObject>();
token.add(object);
while (cursor.hasNext()) {
object = cursor.next();
token.add(object);
//System.out.println(token);
}
if (object == null) {
throw new WebApplicationException(Response.Status.NOT_FOUND);
}
return token;
}
Это возвращает JSON, который содержит:
[{"type":"dbObject"},{"type":"dbObject"}]
Но когда я распечатать маркер в консоли он содержит правильную коллекцию, которая:
{
"_id" : ObjectId("55fc4844f7aea67825dae9a1"),
"login_id" : "sam",
"password" : "***"
}
{
"_id" : ObjectId("56110506d7ca91f604065fdc"),
"login_id" : "bam",
"password" : "***"
}
Что и я хочу он должен вернуться. Где я иду не так, попробуйте представить пример, поскольку я новичок в RESTful-сервисах.
вы пробовали 'return.toString()' с 'String' как возвращение типа' getMongoObject() '. См. [API Docs of BasicDBObject] (http://api.mongodb.org/java/2.6/com/mongodb/BasicDBObject.html#toString%28%29) – thegauravmahawar
Вы имеете в виду public String getMongoObject() {.... return token.toString();}? –
Теперь, когда я попробовал, он работает. Вау, как я это пропустил. Спасибо за помощь, это был довольно глупый вопрос –