我的资源如下,我试图以json格式返回mongo表中的所有文件。
@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服务的新手。
答案 0 :(得分:1)
你应该这样做:
public String getMongoObject() throws Exception {
.......
.......
return token.toString();
}
来自docs:
<强>的toString 强>
public String toString()
返回此对象的JSON序列化
答案 1 :(得分:0)
试试这个 我使用GSON从BasicDBObject转换为我自己的POJO,即TinyBlogDBObject
TinyBlogDBObject obj = convertJSONToPojo(cursor.next()。toString()); private static TinyBlogDBObject convertJSONToPojo(String json){
Type type = new TypeToken< TinyBlogDBObject >(){}.getType();
return new Gson().fromJson(json, type);
}