我正在使用Jongo与Mongo合作,当我进行查询时,结果是LinkedHashMap.

Iterator one = (Iterator) friends.find(query).projection("{_id:0}").as(Object.class);
while (one.hasNext()) {
    LinkedHashMap data = new LinkedHashMap();
    data = (LinkedHashMap) one.next();
    String content = data.toString();
}

问题是,如果json是{"user":"something"},那么内容将是{user=something},它不是json,而是HashMap中的toString.

我怎么才能拿到原来的JSON

我没有class来映射response,也不是创建map类的解决方案,这就是我使用Object.class.的原因

推荐答案

如果你能访问一些JSON库,那么这似乎是一个不错的 Select .

如果使用组织.json库,使用public JSONObject(java.util.Map map):

String jsonString = new JSONObject(data).toString()

如果是Gson,请使用@hellboy提到的gson.toJson()方法:

String jsonString = new Gson().toJson(data, Map.class);

Mongodb相关问答推荐

使用查询参数过滤MongoDB Go驱动程序时出现问题

无法通过管理邮箱/密码身份验证注册/登录新用户帐户(类型错误:加载失败)

优化游戏应用程序的反馈表单后端设计

对对象数组进行分组并在 mongodb 中获取计数

随着时间的推移在 mongodb 中获得

Mongoexport 在日期范围内使用 $gt 和 $lt 约束

Meteor 如何接收对 MongoDB 查询结果的更新?

用 Redis 查询?

MongoDB 聚合 $divide 计算字段

Select 匹配mongodb中两个字段的concat值的记录

Node + Mongoose:获取最后插入的 ID?

C# mongodb driver 2.0 - 如何在批量操作中更新插入?

如何确保基于特定字段的数组中的唯一项 - mongoDB?

TypeError: object of type 'Cursor' has no len()

Mongodb 类型引用 node

MongoDB限制内存

MongoDB聚合将字符串数组连接到单个字符串

mongoose字符串到 ObjectID

判断字段是否存在于数组的子文档中

在 mongodb 集合中查找最旧/最新的帖子